使用 TryParse 进行通用字符串转换
在尝试创建一个通用扩展,利用“TryParse”根据特定类型验证字符串,遇到以下代码:
public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); }
由于无法执行此代码,因此无法编译解析“TryParse”符号。 “TryParse”不是任何接口的一部分,这就提出了此功能是否可以实现的问题。
使用 TypeDescriptor 的替代解决方案
一种方法是使用 TypeDescriptor 类:
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
此方法显式传递目标类型,避免使用泛型并允许运行时类型转换。 TypeDescriptor 提供将字符串转换为各种类型的功能,使您能够根据所需类型验证字符串。
以上是使用TryParse可以实现通用字符串验证吗?的详细内容。更多信息请关注PHP中文网其他相关文章!