1

私は 2 つの間の階層を理解しており、それらの間で変換する方法を知っていますが、このようなリストを宣言することに根本的な問題はありますか?

IEnumerable<int> _bookmarkedDeals = new List<int>();

リストを変更する必要はありません。全体として作成または再作成されます。

代替として、おそらくこれ

IEnumerable<int> _bookmarkedDeals = Enumerable.Empty<int>();
4

9 に答える 9

2

まあ、この場合、_bookmarkedDealsは空になるので、宣言はやや役に立ちません。そうは言っても、List を IEnumerable として扱うことに問題はありません。

于 2012-08-14T14:16:49.013 に答える
1

(ここでのすべての回答とは異なり..)はい。この宣言には非常に問題があります。List<T>常にリストにキャストしなければ、どの機能も使用できません。

後でリスト操作を実行しない場合は、メソッドからこの型を返すことをお勧めしますしかし、同じ方法を使用している間は、生活をより困難にし、パフォーマンスを低下させているだけです (キャストのせいで)。

于 2012-08-14T14:20:56.913 に答える
0

宣言にまったく問題はありませんが、抽象化せずに変数の型を正確に宣言することを好む人もいます。

于 2012-08-14T14:15:16.657 に答える
0

その宣言に問題はありませんが、特定の制限がない限りIList<int>、リストのより適切なインターフェイスです。

于 2012-08-14T14:15:28.023 に答える
0

何も間違ってない。

リストをまったく変更しない場合は、配列を使用できる可能性があります。これは、リストよりもわずかに軽量です。

于 2012-08-14T14:15:51.157 に答える
0

それには根本的な問題はありませんが、List が提供する (IEnumerable が提供しない) 機能の一部を切り取る必要があるのはなぜでしょうか?

于 2012-08-14T14:15:57.197 に答える
0

何も問題ありません、良いデザインです。やや有害と見なされる配列を読んでください。適切なインターフェースの選択についてのすばらしい読み物。

于 2012-08-14T14:16:13.890 に答える
0

いいえ、何も問題はありません。

これがローカル変数でvarある場合、 type の変数を作成するために使用するよりもメリットがありませんList<int>。ただし、列挙するだけであれば、まったく害はありません。それがフィールドであり、おそらく公開されているイベントである場合、それを として公開しないか、具象型の自由な選択を維持することは非常に賢明List<int>ですIList<int>

于 2012-08-14T14:16:46.573 に答える
0

構文の問題はありませんが、どのように役立つかわかりません。この行にアイテムを挿入しない場合、このリストは にキャストし直さない限り、常に空のままにList<int>なりIEnumerable<int>ます。

于 2012-08-14T14:16:51.453 に答える