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:構造体