は、私が「ITemplate」と呼ばれるインターフェースを持っていると私はそのインターフェイスに基づいたクラス「テンプレート」の数を定義するとします。
- TemplateA
- TemplateB
- ....
- TemplateZ
私は
List<ITemplate> myList = new List<ITemplate>();
myList.Add(TemplateA);
myList.Add(TemplateC);
myList.Add(TemplateX);
などを使用することができます任意のテンプレートのリストを作成したい場合 - それはです良い。
言って、今私は
myListAlphaTemplatesだけで、すべてのテンプレートの定義されたサブセットを持つことができ、かつ myListBetaTemplatesだけで、すべてのテンプレートの異なる定義されたサブセットを持つことができるように、特別なリストの数を作成したい
何これを達成する最善の方法は何ですか?
だから、現時点で私が持っているコードは次の行に沿っている(実際のコードを投稿するには大きすぎる)
テンプレートインターフェイスを定義し
interface ITemplateConstraint
{ }
リストごとに複数のインターフェースを定義します
interface SpecialListOne : ITemplateConstraint
{ }
interface SpecialListTwo : ITemplateConstraint
{ }
を入力し今、私は実際の "テンプレート"
を定義しますは、そして最後に、私は私のリストに追加
List<SpecialListOne> ListofTypeOne; // this can be TemplateA or TemplateB
List<SpecialListTwo> ListofTypeTwo; // this can be TemplateA or TemplateC
これはうまく動作しますが、...
テンプレートのすべてが別のライブラリであり、私は新しいリストを作成する必要がある場合は「SpecialListThree "これにはTemplateCしかありませんが、実際のテンプレート定義自体を修正する必要はありません。
コンパイルするコードを投稿してください - C#は大文字と小文字を区別します、 'LIST <>!= List <>'です。 – Oded
'すべてのテンプレートの定義されたサブセットのみを持つことができます'どのサブセットの条件を知っていますかここであなたを助ける方法がわかりません。 – asawyer