2014-09-04 136 views
0

我可以使用可空基元数据类型定义泛型类型。 喜欢的东西定义对可空基本类型的泛型类型限制

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

也许':列表'(注意'T?')? – Dmitry 2014-09-04 10:03:19

+3

难道你不能仅仅限制'Nullable '而不是'T'吗? – 2014-09-04 10:03:29

+0

示例将会有所帮助。 – 2014-09-04 10:08:31

回答

2

你必须这样定义类:

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

这是一样的:

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

仍然是编译错误。编辑我的问题,请看看 – 2014-09-04 10:15:09

+2

@DJ这将是一个'DataTypeHolder ',而不是'DataTypeHolder ' – 2014-09-04 10:18:12

+0

但我需要为空的集合双打 – 2014-09-04 10:21:53