C#类型名称而不是CLR类型名称

时间:2009-01-03 05:31:13

标签: c# system.type

typeof(int).Name

返回System.Int32是否有人知道返回“int”的方法

4 个答案:

答案 0 :(得分:7)

C#关键字(int,double,string)的类型不多......所以也许你可以编写自己的映射函数,从系统类型名称到相应的C#关键字。

答案 1 :(得分:5)

是的,你可以写一个映射函数。无论如何,这只是一个别名。

这是一个清单:

http://msdn.microsoft.com/en-us/library/86792hfa(VS.71).aspx

答案 2 :(得分:1)

使用反射,您可以使用CSharpCodeProvider(也存在于.NET Core 2中)来获取“int”,“string”等,而不是完整的CLR类型名称。

还有其他SO帖子为此提供了代码示例:

How can I get the primitive name of a type in C#?

C# - Get user-friendly name of simple types through reflection?

或者,您必须自己映射这些类型。如果您不介意第三方库,可以使用一些库来为您执行此操作。不要忘记可以为空的变种。

答案 3 :(得分:0)

一个简单的扩展方法可以用来映射到 C# 关键字。代码如下:

Ext Method for GetType return Int instead of System.Int32