我正在使用Fieldinfo.FieldType.FullName来获取字段数据类型。
对于字符串我得到System.String
但对于双我得到

System.Nullable`1 [[System.Double,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]

同样的日期时间我得到
System.Nullable`1 [[System.DateTime,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]

我需要检查我的代码(如果此特定字段是日期时间),然后执行某些操作。
我如何检查该字段是双精度型还是字符串或双精度型等

提前致谢

最佳答案

JaredPar的答案是一个很好的解释。有关解决方案,请尝试:

Type fieldType = fieldInfo.FieldType;
if (fieldType.IsGenericType && fieldType.GetGenericTypeDefinition() == typeof(Nullable<>))
    fieldType = fieldType.GetGenericArguments()[0];


现在您可以说:

if (fieldType == typeof(double))
    ...


等等。这段代码基本上将“撤消”可为空的类型语义。

08-25 23:52