クラスA <T>はタイプAは、ジェネリック型Tである一種をとり表し、時間は、着信を実行するために必要な
Tは、型Tの制約を表します
Tは時間がコンストラクタを持って表し型を作成する)(新
通常の状況で、あなたは、ジェネリック型パラメータのインスタンスを作成することはできません。しかし、新新()制約は、この状況を変え、要求タイプパラメータは、引数なしの提供しなければならないコンストラクタを。
以下はDatableがリストに変換例です。
1つの 公共 静的のIList <T> DatableToIList(データテーブルDT) 2 { 3 4 // 定义集合 5 のIList <T>リスト= 新しいリスト<T> (); 6 のforeach(のDataRow DR でdt.Rows) 7 { 8 T T = 新しいT(); 9 PropertyInfo []プロパティ= t.GetType()GetPropertiesの()。 10 のforeach(PropertyInfoのPI における特性) 11 { 12 13 もし(dt.Columns.Contains(pi.Name)) 14 { 15 16 であれば(!pi.CanWrite) 17 { 18 続けます。 19 } 20 オブジェクト値= DR [pi.Name]。 21 であれば(!値= DBNull.Valueの) 22 { 23 pi.SetValue(T、DR [pi.Name]、NULL ); 24 } 25 26 } 27 } 28 list.Add(T)。 29 } 30 31 リターンリスト。 32 33 34 35 }