将泛型类型限制定义为可空的基元类型

时间:2014-09-04 10:01:16

标签: c# c#-4.0 generics

我可以使用可空的原始数据类型定义泛型类型。 像

这样的东西
public class DataTypeHolder<T> :List<T> where T : struct
{
    public DataTypeHolder()
    {

    }
    public void DoubleValueWithNull()
    {
        var count = this.Count;
        for (int from = 0; from < count; from++)
        {
            this.Add(null); ////  **this is needed..but causing compilation error**
        }

    }

}

稍后这应该是可能的

DataTypeHolder<double?> d = new DataTypeHolder<double?>();

1 个答案:

答案 0 :(得分:2)

你必须像这样定义你的类:

public class DataTypeHolder<T> :List<T?> where T : struct

与:

相同
public class DataTypeHolder<T> :List<Nullable<T>> where T : struct