数据绑定时执行字符串转换的通用结构

时间:2010-03-15 01:27:38

标签: c# generics

不久前我正在阅读一篇关于创建的一系列类的文章,这些类处理了字符串转换为泛型类型。下面是一个模拟类结构。基本上,如果设置StringValue,它将执行一些转换为类型T

public class MyClass<T>
{
    public string StringValue {get;set;}
    public T Value {get;set;}
}

我记不起我正在阅读的文章,或者我正在阅读的课程名称。这已经在框架中实现了吗?或者我应该创建自己的?

3 个答案:

答案 0 :(得分:1)

这在.NET框架中不存在。你必须创建自己的。

答案 1 :(得分:1)

这是将字符串转换为简单类型(结构类型)的一个小技巧:

public T GetValueAs<T>(string sValue)
    where T : struct
{
    if (string.IsNullOrEmpty(sValue))
    {
        return default(T);
    }
    else
    {
        return (T)Convert.ChangeType(sValue, typeof(T));
    }
}

答案 2 :(得分:-1)

我不记得那样的东西,但如果它确实存在,它几乎肯定是一个抽象类或接口,仍然要求你自己实现转换逻辑。微软真的没有办法编写可以接受尚未编写的类的字符串表示的代码,只知道如何正确构造该类。

当您以这种方式思考时,抽象功能已经在Func<string, T>或其中一种序列化格式中可用(xml,json,protobuf等)。