[英]How to tell the difference between typeof(int) == typeof(int?) in C#
[英]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.