我正在使用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))
...
等等。这段代码基本上将“撤消”可为空的类型语义。