私たちのプロジェクトでこのコードに気づきました
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
価値のためにインターフェースを使用することのアイデアは何ですか? IList を実装/サポートするすべてのリストに入れることができるということですか? たとえば、辞書に LList<int>
とfor の値を入れることはできますか?List<string>
私たちのプロジェクトでこのコードに気づきました
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
価値のためにインターフェースを使用することのアイデアは何ですか? IList を実装/サポートするすべてのリストに入れることができるということですか? たとえば、辞書に LList<int>
とfor の値を入れることはできますか?List<string>
よりジェネリックな型を持つことができるので、後で型を変更した場合のリファクタリングが容易になります。
リファクタリング ジョブを減らす最善の方法は、可能であれば IEnumerable を使用することです。
の任意の実装をIList
値として配置できます
Dictionary<int, IList> someDict = new Dictionary<int, IList>();
someDict[1] = new List<string>() { "Hello", "World" };
someDict[2] = new List<int>() { 42 };
someDict[3] = new int[] { 1, 2, 3 };
someDict[4] = new ArrayList();
はい、特別なクラスから切り離したいのですが、ディクショナリで使用される型が IList 機能を提供することを確認したいだけです。タイプがこれを提供する限り、 を含めて使用できますList<T>
。型のメソッド/プロパティのセットを保証するコントラクトのようなものです
はい、宣言された型から継承する型を使用できます。あなたの場合、List<int>
から構築されたジェネリック型List<T>
であり、それは次に継承しIList
ます。そのため、はい、List<int>
辞書で使用できます。