.net 当类型为TimeSpan时,尝试分析泛型类型时出错
我使用以下代码尝试将字符串解析为泛型类型。在我使用的实例中,当我尝试解析到TimeSpan时,它失败了。输入字符串是.net 当类型为TimeSpan时,尝试分析泛型类型时出错,.net,vb.net,parsing,generics,type-conversion,.net,Vb.net,Parsing,Generics,Type Conversion,我使用以下代码尝试将字符串解析为泛型类型。在我使用的实例中,当我尝试解析到TimeSpan时,它失败了。输入字符串是“12:34”,使用TimeSpan.Parse可以很好地解析。但是我找不到实现的解决方案。Parse Public Function ParseGeneric(Of T)(ByVal stringValue As String) As T Return DirectCast(Convert.ChangeType(stringValue, GetType(T)), T) E
“12:34”
,使用TimeSpan.Parse可以很好地解析。但是我找不到实现的解决方案。Parse
Public Function ParseGeneric(Of T)(ByVal stringValue As String) As T
Return DirectCast(Convert.ChangeType(stringValue, GetType(T)), T)
End Function
错误:从“System.String”到“System.TimeSpan”的强制转换无效。如果您不介意使用一些C#,类型描述符
/类型转换器
可以帮助您:
static T ParseGeneric<T>(string stringValue)
{
return (T)TypeDescriptor.GetConverter(typeof(T))
.ConvertFromString(stringValue);
}
谢谢马克,VB很好用。你能解释为什么timespan失败是因为日期工作正常吗?@MattWilko I归结起来就是IConvertible在每个时间段中是如何实现的
Public Function ParseGeneric(Of T)(ByVal stringValue As String) As T
Return DirectCast(TypeDescriptor.GetConverter(GetType(T)) _
.ConvertFromString(stringValue), T)
End Function