where の使用方法 (ジェネリック型制約)

Where No Shi Yong Fang Fa Jenerikku Xing Zhi Yue



C# のジェネリック型の制約により、開発者は、ジェネリック型パラメーターが表現できる型のセットを定義できます。この機能により、コンパイラはタイプ セーフを適用し、実行時に発生する可能性のあるエラーを防ぐことができます。最もよく使用される制約の 1 つは、 'どこ' この記事では、 'どこ' 制約は C# であり、コードでそれを使用する方法です。

「どこ」制約とは

'どこ' 制約は、ジェネリック型が表現できる型パラメーターを開発者が指定できるようにする C# のジェネリック型制約です。制約は、 'どこ' キーワードの後に​​型パラメーターと制約が続く、を使用するための構文 'どこ' 制約は次のとおりです。

パブリック クラス ClassName < T > ここで T : 制約

{

// クラスの実装

}

ここで 'クラス名' ジェネリック型パラメーターを持つクラスの名前を表します 「た」 .の 'どこ' キーワードは型パラメーターの制約を指定し、 「制約」 型パラメーターが表す必要がある型です。







型パラメーターを受け取り、値の配列から最小値を返すジェネリック クラスの例を見てみましょう。ここで、コードは 'どこ' 型パラメーターが数値型でなければならないことを指定する制約:



システムの使用 ;

パブリック クラス MinValue < T > ここで T : 構造体 IComparable Iコンバーチブル

{

public T GetMinValue ( T [ ] 配列 )

{

もしも ( 配列 == ヌル || 配列。 長さ == 0 ) {

新しい ArgumentException をスローする ( 「配列を null または空にすることはできません」 ) ;

}

T 分 = 配列 [ 0 ] ;

ために ( 整数 = 1 ; < 配列。 長さ ; ++ ) {

もしも ( 配列 [ ] . 比較対象 ( ) < 0 ) {

= 配列 [ ] ;

}

}

戻る ;

}

}

公開授業 プログラム

{

公共 静的 空所 主要 ( )

{

整数 [ ] intArray = { 1 2 3 4 5 } ;

最小値 < 整数 > intMinValue = 新しい最小値 < 整数 > ( ) ;

整数 intMin = intMinValue。 GetMinValue ( intArray ) ;

コンソール。 書き込み行 ( 'intArray の最小値: {0}' intMin ) ;

ダブル [ ] doubleArray = { 1.1 2.2 3.3 4.4 5.5 } ;

最小値 < ダブル > doubleMinValue = 新しい最小値 < ダブル > ( ) ;

ダブル doubleMin = doubleMinValue。 GetMinValue ( doubleArray ) ;

コンソール。 書き込み行 ( 'doubleArray の最小値: {0}' doubleMin ) ;

}

}

ここでは、ジェネリック クラスを定義しました。 「最小値」 型パラメータを受け入れる 「た」 値の配列から最小値を返します。次に、 'どこ' 制約を使用して、型パラメーターが構造体でなければならないことを指定し、IComparable インターフェイスを実装し、IConvertible インターフェイスを実装します。この制約により、数値型のみが型パラメーターとして許可されることが保証されます。



  形状、四角形 説明自動生成





結論

'どこ' C# の制約は、開発者が型の安全性を強制し、実行時のエラーを防止できるようにする強力な機能です。この制約を使用すると、ジェネリック型パラメーターが表現できる型のセットを指定できます。この記事では、 'どこ' C# の制約を示し、コードでそれを使用する方法を示しました。