クラス<T> T:新しい()の意味

クラス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          }

おすすめ

転載: www.cnblogs.com/QueryWord/p/12122671.html