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

本文关键字:类型 null 定义 泛型类型 | 更新日期: 2023-09-27 18:20:47

我可以定义一个具有可为null的基元数据类型的泛型类型吗。类似的东西

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?>();

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

您必须这样定义您的类:

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

与相同

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