Не существует типа, который на самом деле наследует от System.ValueType
в традиционном смысле наследования, как это выражено в коде (существует System.Enum
, но для целей этого обсуждения это не имеет значения) , ValueType
- это специальный тип, не предназначенный для использования в коде; вы «наследуете» его, заявляя, что тип является struct
:
Хотя ValueType
является неявным базовым классом для типов значений, вы
не может создать класс, который наследуется от ValueType
напрямую. Вместо,
отдельные компиляторы предоставляют ключевое слово языка или конструкцию (например,
struct
в C # и Structure…End Structure
в Visual Basic) для поддержки
создание типов значений.
Этот тип «наследования» обрабатывается компилятором, который знает эти «специальные» типы (например, есть также System.Void
).
Показанная вами иерархия наследования соответствует традиционной концепции наследования, поэтому она не отражает отношения между ValueType
и Decimal
(или любым другим struct
).