Если нет и набор ссылочных типов и типов значений являются взаимоисключающими, почему это не компилируется:
public static void Do<T>(T obj) where T : struct { }
public static void Do<T>(T obj) where T : class { }
Компилятор заявляет: «Тип уже определяет член с именем «Do» с такими же типами параметров. », но T и T здесь не одно и то же. Один ограничен структурами, другой - классами. Вызов функции всегда должен быть разрешаемым. Есть ли примеры счетчиков?