私は、実装が互いに関連するオブジェクト間に型階層を確立しようとしています。構文が冗長になり、私がジェネリックを乱用しているとか、このようなインタフェース間の関係を表現するためのより洗練された手段があると私は信じています。ジェネリックとの関係を確立する
例を挙げましょう:この階層の
interface Interface
{ }
interface Class<I>
where I : Interface
{ }
interface Method<I, C>
where I : Interface
where C : Class<I>
{ }
interface Parameter<I, C, M>
where I : Interface
where C : Class<I>
where M : Method<I, C>
{ }
}
ルートがInterface
です。次に、特定のInterface
からのみ派生できるClass
があります。
Method
は、Class
の特定の実装に属している必要があります。
Parameter
は、特定のMethod
の実装でのみ実装できます。
これについてもっと良い方法がありますか?私は過去1年間CとGoで泳いでいたので、C#のジェネリックスの構文で少し錆びています。
それは本当にあなたがこれを使用する方法によって異なります。今すぐあなたの質問は、一般的な意味では少しのように思われます。 – juharr