次のことを考慮してください。
public interface ITree<X>
{
...
ITree<X> Union(ITree<X> other);
...
}
アイデアは、いくつかのタイプのツリーを実装することです。ただし、この方法は、同じタイプUnion()
の2つのツリーを結合しようとした場合にのみ機能します。ただし、上記の型アノテーションはこの制限を強制しません。
だから、私の質問は次のとおりです。引数がと同じ型でなければならないUnion()
ような型署名をどのように書くことができますか?other
this
(明らかに、動的ランタイムテストを実行し、型が一致しない場合は例外をスローすることができます。しかし、実行できる場合は、コンパイル時にこれをチェックすることをお勧めします...)