有一个简单的问题,我想我知道答案,但我不想听 来自其他人。
我们说我会创建一个通用函数:
public string GetTypeName<T>()
{
}
它应该返回类型T的名称,这很容易:
return typeof(T).Name
此时我们可以忽略,这不适用于泛型类型,这不是问题的主题。
我的问题是:如果有人调用这样的功能:
GetTypeName<int>()
它应该返回&#34; int&#34;。
如果有人调用这样的功能:
GetTypeName<Int32>()
它应该返回&#34; Int32&#34;。
但我觉得那不可能吧?
感谢您的回答!
答案 0 :(得分:6)
区别是不可能的,因为区别不存在。
int
是一个关键字,编译器将其解释为global::System.Int32
类型作为快捷方式或语法糖。换句话说,在运行时和.NET框架内部,没有int
类型,只有Int32
。
这同样适用于所有具有关键字的类型 - 有关完整列表及其等价物,请参阅MSDN