Ответ
Конструктор вызывается автоматически в момент создания экземпляра класса с помощью оператора new. Его основная задача — привести объект в валидное начальное состояние, проинициализировав поля и свойства.
Базовый пример:
public class Order
{
public int Id { get; }
public DateTime CreatedAt { get; }
// Конструктор экземпляра
public Order(int id)
{
Id = id;
CreatedAt = DateTime.UtcNow; // Инициализация при создании
}
}
// Вызов конструктора при инстанцировании
var newOrder = new Order(1001);
Ключевые моменты и типы конструкторов:
- Конструктор по умолчанию: Если в классе нет ни одного конструктора, компилятор C# автоматически генерирует публичный конструктор без параметров.
- Статический конструктор: Вызывается один раз перед первым обращением к классу (до создания первого экземпляра или использования любого статического члена). Используется для инициализации статических полей.
public class Logger { static Logger() { // Инициализация статического конфигурационного поля LogLevel = ConfigurationManager.AppSettings["DefaultLogLevel"]; } public static string LogLevel { get; } } - Цепочка конструкторов: Конструктор производного класса должен явно или неявно вызывать конструктор базового класса с помощью
: base(...). - Приватный конструктор: Используется в паттернах, запрещающих создание экземпляров (например, в статических классах или для реализации Singleton).