C#のジェネリック研究

1.制約基準タイプ:タイプ引数は任意のクラス、インタフェース、配列、手数料又は他の既知のタイプを含む、パラメータの参照型であります

クラスのデモ<T> T:クラス

効果的なシール部デモの<string>、デモ<INT []>;デモ<者>;デモ<IDisposableを>

無効なブロックセクションのデモ<整数> 

 

2.値型制約は:列挙列挙を含む、値型が含まれています。しかし、彼は空のint型を除外されますか? 

クラスのデモ<T>ここで、T:構造体

効果的なシール部デモ<整数>;デモ<enumDemo>

無効ブロック部デモ<INT []>;デモ<オブジェクト>;デモ<StringBuild>

 

3.コンストラクタ制約:なしコンストラクタ制約パラメータ

一般的な方法のデモ

公共Tデモ<T>()ここで、T:新しいです()

{

   Tを返します()

}

 

4変換型制約は:型引数は、暗黙の型に一致する、参照またはボクシング変換することができます

クラスのデモ<T>ここで、T:int型

デモ<整数>;一貫性転換

 

クラスのデモ<T> T:IDisposableを

デモ<SqlConnectionオブジェクト>参照変換

 

 パブリッククラスデモ<T>ここで、T:IComparableを<T>

デモ<整数>デモ<フロート>ボクシング変換

 

クラスのデモ<T、U> T:U

デモ<整数、IComparableを>ボクシング変換

 

あなたは、複数のインタフェースを指定することができますが、唯一のクラスを指定することができます

クラスのデモ<T> T:IComparableを<整数>、ストリーム、IDisposableを

 

前記組成制約:この組み合わせが禁止されるように、任意の種類なしの両方が、値型と参照型であります                        

                     それは)もはや(新しいにより結合され得る値の種類に制限されてきました。

                    一つは、制約のタイプを変換する場合のインターフェイスの前面になり、私たちは複数回同じインターフェイスを指定することはできませんものの一種です。

効果的な制約:クラスデモ<T>ここで、T:クラス、新しいです()

                   クラスのデモ<T>ここで、T:構造体、IDisposableを

                   クラスのデモ<T、U> T:クラスここで、U:構造体  

                    

 

 

 

 

 

       

おすすめ

転載: www.cnblogs.com/balcon/p/11548232.html