首页 > 后端开发 > C++ > 如何在 C# 中实现通用 TryParse 方法?

如何在 C# 中实现通用 TryParse 方法?

Mary-Kate Olsen
发布: 2025-01-04 05:07:43
原创
632 人浏览过

How Can I Implement a Generic TryParse Method in C#?

通用 TryParse:探索替代方法

尝试使用“TryParse”实现通用扩展来验证给定类型的字符串转换可能会造成由于缺乏“TryParse”作为接口方法而面临的挑战。本文探讨了克服这一障碍的潜在解决方案。

社区建议的一种方法是利用 TypeDescriptor 类。此类提供了一种获取特定类型的转换器的方法。通过在检索到的转换器上调用 ConvertFromString 方法,可以将字符串输入转换为所需的类型。此方法还处理转换期间可能出现的异常。

public static T Convert<T>(this string input)
{
    try
    {
        var converter = TypeDescriptor.GetConverter(typeof(T));
        if(converter != null)
        {
            // Cast ConvertFromString(string text) : object to (T)
            return (T)converter.ConvertFromString(input);
        }
        return default(T);
    }
    catch (NotSupportedException)
    {
        return default(T);
    }
}
登录后复制

或者,可以修改代码以接受目标类型作为参数,从而消除对泛型的需要。这种方法提供了对转换过程的更多控制。

public static bool Is(this string input, Type targetType)
{
    try
    {
        TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
        return true;
    }
    catch
    {
        return false;
    }
}
登录后复制

尽管基于异常的方法可能看起来非常规,但它为执行通用字符串转换的挑战提供了可行的解决方案。

以上是如何在 C# 中实现通用 TryParse 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板