Согласно this post int
является типом поддержки для enum
.
Когда я проверяю исходный код .NET System.Enum абстрактный класс наследует от System.ValueType абстрактный класс.
Но когда я проверяю System.Int32 struct, он наследует от интерфейсов, но не от System.ValueType.
Напротив, когда я декомпилирую mscorlib.dll и проверяю структуру Int32
, он говорит, что структура имеет базовый тип System.ValueType
.
Но все еще проверяя декомпилированный исходный код, я ничего не вижу о System.ValueType
.
Мне кажется, что ключевое слово struct
делает объявление auto-Sytem.ValueType, которое Microsoft также обозначает в ссылка.
Но у меня все еще есть вопрос. Насколько мне известно, наследование двух разных классов от одного и того же родителя не означает, что он также наследуется от другого. Я имею в виду, если B:A
и C:A
это не всегда означает, что C:B
.
Кроме того, когда я проверяю исходные коды, System.Enum
имеет совсем другую реализацию из System.Int32
.
Возвращаясь к истокам, в этих обстоятельствах, как это происходит, результат "System.Int32" является типом поддержки для System.Enum
?
Может ли кто-нибудь объяснить?
С уважением.