我有下面的代码将字符串转换为 T 类型。它适用于所有其他类型,但当 T 为 DateTime 类型时会出现错误。
TypeConverter c = TypeDescriptor.GetConverter( typeof (T) );
return (T) c.ConvertTo( obj, typeof (T) )
我传入一个字符串,例如
obj = "09/09/2009"
它抛出错误 {“'DateTimeConverter' 无法将 'System.String' 转换为 'System.DateTime'。”}
如果你知道你正在得到一个字符串,你可以使用TypeConverter.ConvertFromString
反而。这适用于DateTimeConverter
,虽然我不知道为什么ConvertTo
没有。
例如,这有效:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFromString("09/09/2009"));
或者,只需ConvertFrom
也有效:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFrom("09/09/2009"));
它将转换to a DateTime
因为它就是这样的转换器。
不过,您应该小心文化问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)