Статический конструктор в C# — это специальный метод класса, который вызывается автоматически перед первым обращением к статическим членам класса или перед созданием экземпляра класса. Он используется для инициализации статических данных и выполняется только один раз за всё время работы программы.
Особенности статического конструктора
- Не принимает параметры и не имеет модификаторов доступа.
- Выполняется автоматически при первом обращении к классу или при создании его экземпляра.
- Невозможно вызвать вручную.
- Выполняется один раз за всё время существования приложения.
Примеры использования
Пример 1: Вызов статического метода
using System;
public class ExampleClass
{
static ExampleClass()
{
Console.WriteLine("Статический конструктор выполнен");
}
public static void PrintMessage()
{
Console.WriteLine("Метод PrintMessage вызван");
}
}
class Program
{
static void Main()
{
ExampleClass.PrintMessage();
}
}
Консольный вывод
Статический конструктор выполнен
Метод PrintMessage вызван
Пример 2: Создание экземпляра класса
using System;
public class ExampleClass
{
static ExampleClass()
{
Console.WriteLine("Статический конструктор выполнен");
}
public ExampleClass()
{
Console.WriteLine("Обычный конструктор выполнен");
}
}
class Program
{
static void Main()
{
ExampleClass obj = new ExampleClass();
}
}
Консольный вывод
Статический конструктор выполнен
Обычный конструктор выполнен
Когда использовать статический конструктор
- Для инициализации статических полей.
- Для загрузки конфигурации перед первым использованием класса.
- Для регистрации обработчиков событий.
Статические конструкторы позволяют выполнять важные инициализационные задачи один раз, обеспечивая корректную настройку статических данных перед их использованием.