4

2 つのジェネリック パラメーターを持つクラスがあります。2 番目のジェネリック パラメーターを最初のパラメーターとは異なる型に制限したいと考えています。コンパイル時にそのような制限を行う方法はありますか? 実行時に型をチェックすることはあまり役に立ちません。

public class Test<A, B>
    where B : not_typeof(A)
{
    // ...
}
4

1 に答える 1

4

唯一の方法は実行時です。

コメントに投稿した回答から回答を調整しました。

public class Test<A, B> {

    static Test() {
        if (typeof(B) == typeof(A)) {
            throw new NotSupportedException("Argument B is not supported.");
        }
    }
}
于 2013-08-19T08:15:01.793 に答える