我使用下面的代码将字符串转换为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’。“}
发布于 2009-07-23 20:19:57
如果你知道你得到的是一个字符串,你可以改用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"));它将转换为DateTime,因为它就是这样的转换器。
不过,你应该小心文化问题。
https://stackoverflow.com/questions/1174191
复制相似问题