我有一个通用方法,用于将数据库中的字符串值转换为实际转换值。
public MySpecialValue {
object val;
bool valSet = false;
T GetValue<T> () {
if (!valSet)
{
val = (T)Convert.ChangeType(DatabaseValue, typeof(T));
valSet = true;
}
return (T)val;
}
public string DatabaseValue { get; set; }
}
问题是在初始化期间我不知道数据库中的数据是什么类型,只有在第一次调用时我才能做出这个决定。
有没有办法以不强制拆箱缓存的值类型的方式构造它?(不改变包含类的签名)