После прочтения этого вопроса, спрашивая, что такое "Специальный класс", я оставляю вопрос, почему шесть классов System.Object
, System.Array
, System.Delegate
, System.Enum
и System.ValueType
были выбраны и жестко закодированы в качестве специальных классов, не позволяя им использоваться в качестве ограничений для общих классов или методов.
Вполне возможно понять, почему System.Object
находится там; все классы наследуют System.Object
, поэтому нет необходимости включать его в качестве ограничения. Я не понимаю, почему почему остальные были выбраны для участия в этой категории специальных классов.
PS: специальные классы поднимают ошибку компиляции CS0702, когда делается попытка использовать их в качестве ограничений.