代码之家  ›  专栏  ›  技术社区  ›  Rohan West

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

  •  5
  • Rohan West  · 技术社区  · 16 年前

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

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

    我不记得我读的那篇文章,也不记得我读的那堂课的名字。这是否已经在框架中实现了?还是我自己创造?

    3 回复  |  直到 16 年前
        1
  •  1
  •   Xaav    15 年前

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

    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
  •   Timothy Khouri    16 年前

        3
  •  -1
  •   Joel Coehoorn    16 年前

    我不记得有什么类似的东西,但如果它确实存在的话,它几乎肯定是一个抽象类或接口,仍然需要您自己实现转换逻辑。对于微软来说,真的不可能编写这样的代码:它可以接受尚未编写的类的字符串表示形式,并且只知道如何正确地构造该类。

    如果这样想,抽象功能在 Func<string, T>