Сегодня я читал о статическом классе и частном конструкторе.Статический класс VS Частный конструктор
Статический класс - мы не можем создать экземпляр для статического класса. мы не можем наследовать статический класс. Создается только один экземпляр.
Частный конструктор - мы не можем создать экземпляр. Мы не можем наследовать. (Я не знаю, сколько экземпляров создается.)
Я создал два консольных приложения, то есть один для статического класса, для частного конструктора.
Статический Код класса
я понял, один объект в сгенерированный, как конструктор вызывается один раз.
Частный Constructor Код
Теперь я не понимаю, что ли генерируется или нет какой-либо объект.
У меня есть два вопроса.
Вопрос 1. Я не нашел особой разницы между частным конструктором и классом Static. Не могли бы вы предложить мне, в каком сценарии, где я должен использовать Private Constructor, и где я должен использовать Static-класс, поскольку я могу использовать их оба.
Вопрос 2. Если я использую частный конструктор, сколько объектов сгенерировано?
Спасибо.
EDIT:
Я думаю, что люди не понимают, на мой вопрос. Я знаю, что статический конструктор всегда вызывает один раз при первой ссылке. Статический конструктор используется для инициализации статических членов класса.
Вопрос 1. У меня есть ситуация: мне нужно создать класс, который не может быть создан. Я могу сделать это с помощью статического класса или частного конструктора. Поэтому мой вопрос заключается в том, что «Есть ли разница между обоими из них, какой из них я должен использовать?»
Вопрос 2. Если я использую частный конструктор, сколько объектов создано? Если ответ 0, то как распределение памяти частного конструктора работает в среде CLR. Если я использую частный конструктор, нет выделения памяти.
'Частный конструктор - Мы не можем создать право instance.'isn't. Вложенные классы могут –
Вкратце: разница в том, что статический класс предотвращает любое создание экземпляра, в то время как частный конструктор только предотвращает внешнюю инстанцию. Частный конструктор имеет смысл, если вы хотите реализовать [singleton pattner] (https://en.wikipedia.org/wiki/Singleton_pattern). Так что только один объект класса. –
ваши дезинформированные частные конструкторы могут быть вызваны только изнутри этого класса, то есть через другой конструктор или статический метод, статический конструктор вызывается при первом использовании класса для его инициализации, он не создает экземпляр – MikeT