All*_*est 20 .net c# generics reflection
如果我写:
var type = typeof(List<string>);
Console.WriteLine(type.Name);
Run Code Online (Sandbox Code Playgroud)
它会写:
List`1
我想要它只写:
名单
我怎样才能做到这一点?有没有更聪明的方法来做到这一点,而不必使用Substring
或类似的字符串操作功能?
Jon*_*eet 31
不,它在名称中包含泛型arity是完全合理的 - 因为它是使名称唯一的一部分(当然还有程序集和命名空间).
这样说吧:System.Nullable
并且System.Nullable<T>
是非常不同的类型.你不希望混淆两者......所以如果你想丢失信息,你将不得不努力去做.当然,这并不是很难,可以放入辅助方法:
public static string GetNameWithoutGenericArity(this Type t)
{
string name = t.Name;
int index = name.IndexOf('`');
return index == -1 ? name : name.Substring(0, index);
}
Run Code Online (Sandbox Code Playgroud)
然后:
var type = typeof(List<string>);
Console.WriteLine(type.GetNameWithoutGenericArity());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5294 次 |
最近记录: |