Можно ли выключить ковариантность в делегатах c#

Для чего я явно указываю in/out в обобщенных делегатах, если и без этих ключевых слов они вариантны. Можно ли как-то отключить эту вариантность?

del<Child> delegate1 = func; // Contrvariance
del1<Parent> delegate2 = func2; // Covariance

void func(Parent x)
{
    Console.WriteLine(x);
}

Child func2()
{
    return new Child();
}


class Parent { }
class Child : Parent { }

delegate void del<T>(T item); //without in
delegate K del1<K>(); // without out

Ответы (1 шт):

Автор решения: Hard Core

ничего отключить нельзя, in/out используются по принципу "nice to have" (источник: с# 9.0 in nutshell)

→ Ссылка