Если нет, и множество ссылочных типов и типов значений являются взаимоисключающими, почему это не компиляции:Может ли тип быть ссылочным типом и типом значения одновременно?
public static void Do<T>(T obj) where T : struct { }
public static void Do<T>(T obj) where T : class { }
Компилятор гласит: «Тип уже определяет элемент под названием„Do“с теми же типами параметров . ", но T и T здесь не совпадают. Один из них связан с структурами, другой - с ограничениями на классы. Вызов функции всегда должен быть разрешимым. Есть ли встречные примеры?
Фактически, каждый из них ограничен «ссылочными типами» (который включает в себя делегаты, интерфейсы и т. Д., А не только классы), а другой ограничивается структурами **, кроме ** 50% (возможных) структур, которые задействованы в 'Nullable'. Эти ограничения в настоящее время не позволяют, например, «T === int?». –