タンク、飛行機、およびそれらが実装する他の多くのもののリストがあるとしましょう。それらが実装する一般的なものは、抽象クラスである IHaveLocation とインターフェースである IHaveColor です。
この2つのインターフェースに基づいてリストを照会する必要があるため、それらのリストを作成したいと思います。
どうすればいいのですか ?
- オブジェクトのリストを作成し、(IHaveLocation として obj) を記述して彼のメソッドを使用し、(IHaveColor として obj) を記述して彼のメソッドを使用できます。しかし、これは非常に醜いです!
- IhaveLocation のリストを作成できます。次に、1 つだけ (IHaveColor としての obj) を実行する必要があります。でもそれもひどい
- 新しい抽象クラスを作成して両方から継承することはできますが、それを避けようとしています。
これにはいくつかのトリックがありますか?
のようなものを作りたいList<IHaveLocation and IHaveColor>