2017-10-20 9 views
1

リストをメソッドの引数として取りたい場合、ResharperはIListインターフェイスを使用するほうが良いかもしれないというヒントを示します。 ListをIListに置き換えると、ResharperはIEnumerableを提案します。 Javaでは、私は引数としてArrayListではなくArrayListを使用します。しかし、引数としてiEnumerableを使うのは本当にいいコードですか? IListまたはListの機能が必要ない場合は、IEnumerableを使用するのがよい方法ですか?ここでC#リストにIListまたはIEnumerableを引数として指定します。

+1

*「IListまたはListの機能がない場合はIEnumerableを使用するのがよいでしょうか? –

+0

はい、配列や遅延ロードされたLinqクエリのように渡すことができるためです。 – juharr

+0

再利用可能なメソッドを提供することは常に良いことです。すべてのジェネリックコレクションの基本インターフェイスを尋ねる場合は、リストだけでなく、多くのタイプでこのメソッドを使用できます。 'IList 'はリストと配列を扱いますが、 'IList 'のメソッドが必要ない場合は 'IEnumerable 'を使うことができます。 –

答えて

5

は答えに

だから、最も具体的な型を返す、私はすべてのことについての私の心を変更作られ、私は

の原則で最も一般的なタイプを取り、次の起動作らthe articleですあなたの質問

IListまたはListの機能が必要ない場合は、IEnumerableを使用することをお勧めしますか?

はい、それは

ノートです:オーバーそれをしません! IEnumerableを受け入れたコードを見た後、パラメータがListでない場合は例外がスローされました。これは愚かです。上記の文章が意味することは、「あなたが必要とするよりも具体性を求めないでください」です。

関連する問題