【问题标题】:C# type name instead of CLR type nameC# 类型名称而不是 CLR 类型名称
【发布时间】:2009-01-03 05:31:13
【问题描述】:
typeof(int).Name

将返回 System.Int32 有谁知道返回“int”的方法

【问题讨论】:

    标签: c# system.type


    【解决方案1】:

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

    【讨论】:

    • 你可以使用反射。我不建议进行映射,因为那里有很多类型(CLR 类型除外)。如果您确实想进行映射但又不想自己实现它,也可以使用人们编写的库。
    【解决方案2】:

    是的,你可以写一个映射函数。反正这只是一个别名。

    这是一个列表:

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

    【讨论】:

      【解决方案3】:

      使用反射,您可以使用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?

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

      【讨论】:

        【解决方案4】:

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

        Ext Method for GetType return Int instead of System.Int32

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-05
          • 2018-10-27
          • 1970-01-01
          相关资源
          最近更新 更多