繁体   English   中英

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

[英]Differentiation between typeof(int) and typeof(Int32) in C# possible?

有一个简单的问题,我想我知道答案,但我不想听到其他人的回答。

假设我将创建一个泛型函数:

public string GetTypeName<T>()
{
}

它应该返回类型T的名称,这很简单:

return typeof(T).Name

在这一点上,我们可以忽略这一点,即这不适用于泛型类型,这不是问题所在。

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

GetTypeName<int>()

它应该返回“ int”。

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

GetTypeName<Int32>()

它应该返回“ Int32”。

但是我认为那不可能吗?

谢谢回答!

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

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

这同样适用于所有具有关键字的类型-有关完整列表及其等效内容,请参见MSDN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM