C#中typeof(int)和typeof(Int32)之间的区别可能吗?

Pad*_*Pad 1 .net c# generics types

得到一个简单的问题,我想我知道答案,但我不想听到其他人的意见.

假设我将创建一个通用函数:

public string GetTypeName<T>()
{
}
Run Code Online (Sandbox Code Playgroud)

它应该返回类型T的名称,这很容易:

return typeof(T).Name
Run Code Online (Sandbox Code Playgroud)

在这一点上,我们可以忽略,这不适用于泛型类型,这不是问题的主题.

我的问题是:如果有人调用这样的函数:

GetTypeName<int>()
Run Code Online (Sandbox Code Playgroud)

它应该返回"int".

如果有人像这样调用函数:

GetTypeName<Int32>()
Run Code Online (Sandbox Code Playgroud)

它应该返回"Int32".

但我认为那不可能吧?

谢谢回答!

Dav*_*vid 6

区别是不可能的,因为区别不存在.

int是一个关键字,编译器将其解释为将global::System.Int32类型表示为快捷方式或语法糖.换句话说,在运行时和.NET框架本身内,没有int类型Int32.

这同样适用于所有具有关键字的类型 - 有关完整列表及其等价物,请参阅MSDN