我试图创建一个通用扩展,使用'TryParse'检查字符串是否为给定类型:
public static bool Is<T>(this string input)
{
T notUsed;
return T.TryParse(input, out notUsed);
}
由于无法解析符号“ TryParse”,因此无法编译
据我了解,“ TryParse”不是任何接口的一部分。
这有可能吗?
更新:
使用下面的答案,我想出了:
public static bool Is<T>(this string input)
{
try
{
TypeDescriptor.GetConverter(typeof(T)).ConvertFromString(input);
}
catch
{
return false;
}
return true;
}
它工作得很好,但是我认为以这种方式使用异常对我来说不合适。
更新2:
修改为传递类型,而不是使用泛型:
public static bool Is(this string input, Type targetType)
{
try
{
TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
return true;
}
catch
{
return false;
}
}
LEATH
相关分类