Ada*_*m V 4 c# generics collections
我有一个从数据库中填写的类:
public class Option<T>
{
public T Value { get; set; }
public T DefaultValue { get; set; }
public List<T> AvailableValues { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想要一个他们的集合:
List<Option<T>> list = new List<Option<T>>();
Option<bool> TestBool = new Option<bool>();
TestBool.Value = true;
TestBool.DefaultValue = false;
list.Add(TestBool);
Option<int> TestInt = new Option<int>();
TestInt.Value = 1;
TestInt.DefaultValue = 0;
list.Add(TestInt);
Run Code Online (Sandbox Code Playgroud)
它似乎不起作用.想法?
Jon*_*eet 12
我怀疑你真的想要一个非泛型基类 - 否则不同的Option<T>封闭类型之间没有任何共同点.
我理解你要做的是什么,但.NET泛型不允许你表达这种关系.这就像试图从Type该类型的实例做一个地图......它只是不会飞:(
您必须提供类型而不是模板参数:
List<Option<T>> list = new List<Option<T>>();
变
List<Option<bool>> list = new List<Option<bool>>();
将类型的项添加Option<int>到同一列表将不起作用,但这是一个单独的问题,而不是我上面提到的问题.