Это документы о .ToString()
, по которым возник этот вопрос. Они заявляют:
Поскольку Object является базовым классом для всех ссылочных типов в .NET Framework, это поведение [.ToString ()] наследуется ссылочными типами, которые не переопределяют метод ToString.
Но далее говорится:
Например, базовые типы, такие как Char, Int32 и String, предоставляют реализации ToString.
Однако Int32 является структурой и, следовательно, должен быть типом значения.
Так что здесь происходит? Реализует ли Int32 свой собственный .ToString (), который не имеет ничего общего с Object?
Object
является базовым классом для всех ссылочных типов в .NET Framework. Однако это НЕ означает, что все, что имеетObject
в иерархии наследования, является ссылочным типом. (Все кошки относятся к классу Mammalia, но не все виды в классе Mammalia являются кошками.) Совершенно законно, чтобы тип значения наследовал от ссылочного типа, и фактически, всеstruct
происходят отValueType
(сам по себе ссылочный тип), аValueType
происходит отObject
. - person jason   schedule 16.11.2011