のような具体的なクラスを使用する必要がありますか?私は最近、これについて別の場所で*の意見を述べましたが、詳細な分析が必要なので、独自の質問として投稿しています。IEnumerableのようなインターフェイス、またはList <>
私のプログラムでコンテナを作成して渡す必要があるとしましょう。私はおそらく、この段階で少なくとも1種類の容器と他の種類の容器について強い意見を持っていませんが、私は1つを選択します。議論のために、リスト<>を使用するとします。
質問があります:C#のような高レベルのインターフェイスを受け入れて返すメソッドを書く方が良いですか?IEnumerable?または、私が選択した特定のコンテナクラスを取得して渡すメソッドを記述する必要があります。
私はどのような要因を決定する必要がありますか?どのようなプログラムがどちらから利益を得るのですか?コンピュータ言語はあなたの決定に影響しますか?パフォーマンス?プログラムサイズ?個人的なスタイル?
(それも重要ですか?)
**(宿題:。それを見つけるしかし、あなたは自分を探して前にそうではないバイアスとして、あなたをここにあなたの答えを投稿してください。)*
同意しましたが、私のコードではIEnumerableを使用するのが厄介だと感じているので、まったく同じ質問をしています。 Listの代わりにfoos = fooQuery.GetFoos()を使用すると、リスト foos = new List (fooQuery.GetFoos())になります。何か不足していますか?それとも、これが柔軟性のために支払う価格ですか? –
si618
上記のコメントを使用した例は、結果を検証するユニットテストです。 IList.Count、実際の使用法は実際にIListを必要とせず、IEnumerableで十分ですが、ちょっと気分が悪いです... – si618
@Si私たちはここでさまざまなことを話していると思います。この質問は、メソッド内のスコープについてのみです。メソッド以外の戻り値の型と使用方法について説明しています。 –