不久前我正在阅读一篇关于创建的一系列类的文章,这些类处理了字符串转换为泛型类型。下面是一个模拟类结构。基本上,如果设置StringValue,它将执行一些转换为类型T
public class MyClass<T>
{
public string StringValue {get;set;}
public T Value {get;set;}
}
我记不起我正在阅读的文章,或者我正在阅读的课程名称。这已经在框架中实现了吗?或者我应该创建自己的?
答案 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等)。