Почему статические классы не могут иметь нестатических методов и переменных? - PullRequest
11 голосов
/ 16 октября 2011

Почему статические классы не могут иметь нестатические методы и переменные, когда нестатические классы могут иметь статические методы и переменные?

В чем преимущество наличия статических методов и переменных в нестатическом классе?Хотя наличие статического конструктора в нестатическом классе понятно.

Ответы [ 2 ]

28 голосов
/ 16 октября 2011

Статические классы не могут быть созданы в первую очередь, поэтому, даже если вы можете объявить нестатические (экземплярные) члены, они никогда не будут доступны.Поскольку на самом деле нет смысла разрешать это по этой причине, язык просто запрещает это.

Имейте в виду, что статические классы являются просто классами , в то время как есть две вещи, которыенепосредственно связаны с нестатическими классами: сами классы и экземпляры / объекты классов.

Нестатический класс может иметь как статический, так и нестандартный классы.-статические члены, так что статические члены применяются к классу, тогда как нестатические члены применяются к экземплярам этого класса.

2 голосов
/ 16 октября 2011

Статический класс не может содержать нестатические члены, потому что по определению он не может быть создан, поэтому нет возможности использовать эти члены.

Однако статические члены в нестатическом классе могут использоваться безналичие экземпляра класса - немного другой сценарий, то есть для служебных методов или фабричных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...