2014-09-04 156 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