class A
{
}
class B : A
{
}
void method(A that is not a B argument) {}
void generic_method(generic_class<A that is not a B> generic_argument) {}
void params_method(params A that is not a B[] params_arguments) {}
Есть ли какой-либо синтаксический способ сделать это? я понимаю, что могу просто сделать
if(argument is B)
throw new ArgumentException("argument cannot be a B", "argument");
в начале первого метода и сделать это в foreach для второго и третьего, но мне интересно, есть ли какое-то ключевое слово или концепция ООП, которая улучшает это.