2 つのジェネリック パラメーターを持つクラスがあります。2 番目のジェネリック パラメーターを最初のパラメーターとは異なる型に制限したいと考えています。コンパイル時にそのような制限を行う方法はありますか? 実行時に型をチェックすることはあまり役に立ちません。
public class Test<A, B>
where B : not_typeof(A)
{
// ...
}
唯一の方法は実行時です。
コメントに投稿した回答から回答を調整しました。
public class Test<A, B> {
static Test() {
if (typeof(B) == typeof(A)) {
throw new NotSupportedException("Argument B is not supported.");
}
}
}