Согласно this post int
является типом подложки для enum
.Как int является типом подложки для перечисления
Когда я проверяю исходный код .NET System.Enum абстрактный класс наследует от System.ValueType абстрактный класс.
Но когда я проверяю структуру System.Int32, она наследует от интерфейсов, но не от System.ValueType.
Наоборот, когда я декомпилировать mscorlib.dll и проверить Int32
-структуру, что говорит о том, что структура имеет базовый тип System.ValueType
.
Но все-таки проверять декомпилированный исходный код, который я не могу видеть ничего о System.ValueType
.
Это заставляет меня думать, что ключевое слово struct
делает decleration автоматический Sytem.ValueType, который Microsoft также обозначает в этом reference.
Но у меня еще вопрос. Насколько мне известно, наследование двух разных классов от одного и того же родителя не означает, что он также наследуется от другого. Я имею в виду, если B:A
и C:A
это не всегда означает, что C:B
.
Кроме того, когда я проверяю исходные коды, System.Enum
имеет совершенно другую реализацию от System.Int32
.
Назад к истокам, в этих обстоятельствах, как это происходит, к результату, что «System.Int32» является типом поддержки для System.Enum
?
Может ли кто-нибудь объяснить?
С уважением.
См. Http://stackoverflow.com/a/3504145/1625737 – haim770
«Все типы значений выводятся ** неявно ** из System.ValueType». (Https://msdn.microsoft.com/en-us/library/s1ax56ch.aspx). – haim770
Определенно не вне темы. Вы можете удалить P.S часть :) –