【问题标题】:GetType() with "simple" typenames带有“简单”类型名的 GetType()
【发布时间】:2013-06-25 00:46:32
【问题描述】:

我正在尝试读取一个 xml 文件,其中除了其他参数之外,还可以给出字段的类型。示例:

<elements>
   <element>
      <elementType>int</elementType>
   <element> 
      <elementType>string</elementType>
   </element>
<elements>

现在我想通过使用 type.GetType(value) 来获取类型,例如 value 是“int”或“string”。例如,它适用于“System.String”或“System.Int32”,但我不希望用户输入确切的类型。这可以以优雅的方式完成吗(没有 switch-case-nonsene)?

【问题讨论】:

  • 没有。它们只是 C# 编译器的别名。
  • 为什么用户要输入类型名称?
  • @Amy 内平台效果。 OP 似乎正在创建类似脚本或规则引擎的东西。业务需要且用户同意的;为什么不呢。

标签: c# types casting


【解决方案1】:

不,您需要一些 switch-case-“废话”或为您进行映射的字典。

这些不是 .NET 类型,它们是映射到 .NET 类型的 C# 关键字。

【讨论】:

    【解决方案2】:

    据我所知,没有办法做到这一点。类型别名的完整列表可以在here 中找到。您可以轻松地将类型字典包含在解决方案中以别名字符串名称。这是当前列表:

    • 布尔值 : System.Boolean

    • 字节 : System.Byte

    • 字节 : System.SByte

    • 字符 : System.Char

    • 十进制 : System.Decimal

    • 双 : System.Double

    • 浮点数 : System.Single

    • int : System.Int32

    • 单位 : System.UInt32

    • 长 : System.Int64

    • 乌龙 : System.UInt64

    • 对象 : System.Object

    • 短 : System.Int16

    • 超短 : System.UInt16

    • 字符串 : System.String

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-29
      • 1970-01-01
      • 2019-08-25
      • 2010-11-02
      相关资源
      最近更新 更多