Статични конструктори Нестатичният клас може да съдържа статичен конструктор без параметри. Може да се дефинира с ключовата дума static и без модификатори за достъп като public, private и protected.
public class StopWatch
{
// static constructor
static StopWatch()
{
Console.WriteLine("Static constructor called");
}
// instance constructor
public StopWatch()
{
Console.WriteLine("Instance constructor called");
}
По-горе нестатичният клас StopWatch съдържа статичен конструктор, а също и нестатичен конструктор.
Статичният конструктор се извиква само веднъж, когато статичният метод се използва или създава екземпляр за първи път. Следващият пример показва, че статичният конструктор се извиква, когато статичният метод се извика за първи път. Извикването на статичния метод втори път нататък няма да извика статичен конструктор.
Пример: Изпълнение на статичен конструктор
StopWatch.DisplayInfo(); // static constructor called here
StopWatch.DisplayInfo(); // none of the constructors called here
Правила за статични конструктори Статичният конструктор се дефинира с помощта на ключовата дума static и без използване на модификатори за достъп public, private или protected.
Един нестатичен клас може да съдържа един статичен конструктор без параметри. Не са разрешени параметризирани статични конструктори.
Статичният конструктор ще бъде изпълнен само веднъж в живота. Така че не можете да определите кога ще бъде извикан в приложение, ако даден клас се използва на няколко места.
Статичният конструктор има достъп само до статични членове. Не може да съдържа или да осъществява достъп до членове на екземпляра.