C#では、A、Aという形式の2つのクラスがあります。ここで、Aは参照型に対してカスタマイズされたIEnumerableであり、B、CはクラスDから継承する参照型です。B、Cに存在するPという名前のプロパティDから継承する他のクラスはPを持たないべきであるので、Dに追加することは不適切です。私は、A、Aのインスタンスb、cを持ちます。 Pと同じタイプ:このケースの繰り返しを減らすにはどうすればいいですか?
b.Where(v => v.P == x).ForEach(v => v.P = y);
c.Where(v => v.P == x).ForEach(v => v.P = y);
このコードは機能しますが、どのように私は繰り返すことを避けることができますか?ドライ原則? Pは1は、単にDとキャストすなわちのインスタンス上で動作する関数を作成することはできませんD上に存在しないので
:
私自身の努力は三つの主要な困難に遭遇しました。 b.Select(v =>(D)v)。 Pは、ジェネリック型には存在しませんので
、コンパイラはAのみTクラス、Aを使用してジェネリックがかかるため、一般的なT.
でこのロジックを実行するための明確な方法を容認しませんTが参照型である必要があると不平を言う。
私は、このアプローチが可能であるべきことをお勧めしてきたように、Cは、継承することができたBから新しいインターフェイス上の汎用メソッドを作成するソリューションで、特に興味があります。
クラスA、B、C、Dを定義するコードを追加してください。 – Sefe
私はそれを行うことはできません。それは独占的だ。いずれにせよ、それは多くのコードになります。 –
あなたの例を説明しました。それをコードで説明してください。 – Sefe