gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:55 26 4
gpt4 key购买 nike

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

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

public string GetTypeName<T>()
{
}

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

return typeof(T).Name

此时我们可以忽略,这对泛型类型不起作用,这不是问题的主题。

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

GetTypeName<int>()

它应该返回“int”。

如果有人这样调用函数:

GetTypeName<Int32>()

它应该返回“Int32”。

但我认为那是不可能的吧?

感谢您的回答!

最佳答案

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

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

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

关于c# - C# 中 typeof(int) 和 typeof(Int32) 之间的区别可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29709268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com