【问题标题】:How do I get a string representation from a nullable type? [duplicate]如何从可为空的类型中获取字符串表示形式? [复制]
【发布时间】:2015-12-07 17:59:40
【问题描述】:

说我有类似的东西

var T = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");

这是一个可以为空的日期时间。

T.FullName 给我:

"System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]"

如何从 Type 中提取 DateTime?Nullable<DateTime> 作为字符串表示形式?

【问题讨论】:

标签: c# .net reflection types


【解决方案1】:

也许是这样:

var T = Type.GetType("System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]");
Type nullableType = Nullable.GetUnderlyingType(T);
string typeName = nullableType != null ? nullableType.Name + "?" : T.Name;

【讨论】:

    【解决方案2】:

    Type.FullName 返回通用参数的完整程序集限定名。但是ToString() 方法会打印一个更友好的名字,也许这就是你想要的:

    System.Nullable`1[System.DateTime]
    

    请注意,如果泛型参数不是来自mscorlib 库,ToString 返回的类型名称可能无法被Type.GetType(string) 方法解析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2011-06-22
      • 2011-08-27
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多