use*_*322 3 c# typeconverter c#-3.0
我有以下代码将字符串转换为类型T.它适用于所有其他类型,但在T类型为DateTime时会出错.
TypeConverter c = TypeDescriptor.GetConverter( typeof (T) );
return (T) c.ConvertTo( obj, typeof (T) )
Run Code Online (Sandbox Code Playgroud)
我传了一个字符串
obj = "09/09/2009"
Run Code Online (Sandbox Code Playgroud)
它抛出一个错误{"'DateTimeConverter'无法将'System.String'转换为'System.DateTime'."}
如果你知道你得到一个字符串,你可以TypeConverter.ConvertFromString改用它.这适用DateTimeConverter,虽然我不知道为什么ConvertTo不.
例如,这有效:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFromString("09/09/2009"));
Run Code Online (Sandbox Code Playgroud)
或者,也ConvertFrom适用于:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFrom("09/09/2009"));
Run Code Online (Sandbox Code Playgroud)
它将转换为 a,DateTime因为它是那种转换器.
你应该小心文化问题.
| 归档时间: |
|
| 查看次数: |
3202 次 |
| 最近记录: |