同じプロパティを持っていれば、さまざまなタイプのセットで機能する拡張メソッドを作成できますか?たとえば :同じプロパティを持つさまざまなタイプの一般的な拡張メソッド
public static T GetObjectByIdOrName<T>(this IEnumerable<T> collection, Mapping mapping) where T : IType1, IType2, IType3
{
return collection.FirstOrDefault(x => x.Id == mapping.ObjectId || x.Name == mapping.ObjectName);
}
全てのタイプは、IDとNameプロパティはので、私はこれが可能であろう期待してい - しかし、コンパイラはType1.IdとType2のIdとのあいまいな参照があることを私に言っています...
これを実装する方法はありますか? (私はそれらのための共通の基盤を作成することはできません)
これらのクラスはあなたのコントロール下にありますか? – Colin
この制約は、タイプが3つのインタフェースすべてを実装しなければならないことを意味します。彼らがすべて同じプロパティを公開している場合、プロパティのいずれかが明示的に実装されている場合、どのインターフェイスを経由するべきかは分かりません。 – juharr
各インタフェースを1つの基本インタフェースを使用するようにリファクタリングすることはできますか? –