作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如果我写:
var type = typeof(List<string>);
Console.WriteLine(type.Name);
它将写:
List`1
我希望它只写:
List
我该怎么做?有没有更聪明的方法来做到这一点而不必使用 Substring
或类似的字符串操作函数?
最佳答案
不,在名称中包含通用元数是非常有意义的 - 因为它是使名称唯一的部分(当然还有程序集和命名空间)。
这样说: 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);
}
然后:
var type = typeof(List<string>);
Console.WriteLine(type.GetNameWithoutGenericArity());
关于c# - 获取没有任何泛型信息的类型名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386202/
我是一名优秀的程序员,十分优秀!