Взаимоисключающие ограничения для двух методов с одинаковой подписью
Таким образом, эти два метода имеют одну и ту же сигнатуру, но разные ограничения
public static void Method<T>(ref T variable) where T : struct { }
public static void Method<T>(ref T variable) where T : class { }
Но их нельзя определить в одном классе, потому что они имеют одинаковые подписи. Но в этом конкретном случае они взаимоисключающие. (Если я не прав в этом)
Я понимаю, что вы можете поставить дополнительные ограничения, кромеclass
а такжеstruct
но вы не можете указать обаstruct
а такжеclass
по тому же методу. Так почему бы это не скомпилировать?