在尝试创建用于验证字符串值的通用扩展方法时,您遇到了“TryParse”未在任何文件中定义的问题。接口并寻求替代解决方案。
使用替代方法TypeDescriptor
TypeDescriptor 类提供了一种检索给定数据类型的类型转换器的方法。该转换器可用于在字符串与其他类型之间进行转换。这是代码的更新版本:
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
在此版本中,您可以传递任何目标类型,并且它将尝试使用适当的转换器将字符串转换为该类型。如果转换成功,该方法返回true;否则,它返回 false。
异常和替代方案
虽然基于异常的方法有效,但您可能更喜欢更强大的选项。您可以返回 Nullable
或者,您可以为常见类型(例如 int、double 和 DateTime)创建重载,并为每种类型定义自定义逻辑。这将消除对通用实现的需求,并提供更高效和类型安全的转换。
以上是如何通用测试字符串是否可以解析为特定类型?的详细内容。更多信息请关注PHP中文网其他相关文章!