首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用TypeDescriptor代替TryParse

用TypeDescriptor代替TryParse
EN

Stack Overflow用户
提问于 2009-07-14 23:26:35
回答 1查看 869关注 0票数 1

我正在尝试为泛型类型复制TryParse,并认为TypeDescriptor可能会给我想要的东西。因此,我提出了以下测试用例,但它失败了,只是想知道是否有人知道我哪里错了。

代码语言:javascript
复制
    [TestMethod]
    public void Test()
    {
        string value = "Test";
        Guid resultValue;
        var result = this.TryConvert(value, out resultValue); 
    } 

    public bool TryConvert<T>(string value, out T resultValue)
    { 
        var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(T));
        if (converter.IsValid(value))
        {
            resultValue = (T)converter.ConvertFrom(value);
            return true;
        }
        resultValue = default(T);
        return false;
    }

注意,我不想使用try catch块。

干杯安东尼

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-14 23:40:21

来自TypeConverter.IsValid的MSDN文档

IsValid方法用于验证类型中的值,而不是确定值是否可以转换为给定的类型。

因此,它只会检查值的类型,而不会检查值是否是可以解析的正确输入。

另请参阅this Connect ticket

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1128637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档