0

のような関数を見ました

public FuncA(string param1, IList<SqlParameter> sqlParamsList)

なぜ著者は List ではなく IList を使用していたのだろうか? どちらの方がよいですか?それらの違いは、1つはインターフェースであり、もう1つはクラスであることを知っています。私の最後の質問は、いつどれを使用するかです。

4

4 に答える 4

10

複数のクラスがIListインターフェイスを実装できます。を使用するIList場合は、 を実装する任意のクラスを受け入れますIList

を使用する場合は、クラスと派生クラスListのみを渡すことができます。List

于 2013-10-30T13:28:18.133 に答える
2

呼び出し元にとって API がより柔軟になるため、通常はインターフェイスを使用することをお勧めします。メソッドが具体的な実装ではなくインターフェイスを受け入れる場合、呼び出し元は、を実装している限り、必要な型 ( ListArray、 ...) を使用できます。ImmutableListIList

于 2013-10-30T13:28:22.340 に答える
1

呼び出し元がインターフェイスを実装する任意のオブジェクトを渡すことができるようにするために、具体的な型よりもインターフェイスを使用することをお勧めします。
特に public メソッドでは、これは良い習慣です。

于 2013-10-30T13:28:59.250 に答える