Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Статические конструкторы C# Полное руководство Герберт Шилдт

Статические конструкторы C# Полное руководство Герберт Шилдт

Конструктор можно также объявить как static. Статический конструктор, как правило, используется для инициализации компонентов, применяемых ко всему классу, а не к отдельному экземпляру объекта этого класса. Поэтому члены класса инициализируются статическим конструктором до создания каких-либо объектов этого класса. Ниже приведен простой пример применения статического конструктора.

// Применить статический конструктор.

using System;

class Cons {
   public static int alpha;
   public int beta;

   // Статический конструктор.
   static Cons() {
      alpha = 99;
      Console .WriteLine ("В статическом конструкторе.");
   }

   // Конструктор экземпляра.
   public Cons () {
      beta = 100;
      Console.WriteLine ("В конструкторе экземпляра.");
   }
}

class ConsDemo {
   static void Main() {
      Cons ob = new Cons() ;
      Console.WriteLine("Cons.alpha: " + Cons.alpha);
      Console.WriteLine("ob.beta: " + ob.beta);
   }
}


При выполнении этого кода получается следующий результат:
   В статическом конструкторе.
   В конструкторе экземпляра.
   Cons.alpha: 99
   ob.beta: 100

Обратите внимание на то, что конструктор типа static вызывается автоматически, когда класс загружается впервые, причем до конструктора экземпляра. Из этого можно сделать более общий вывод: статический конструктор должен выполняться до любого конструктора экземпляра. Более того, у статических конструкторов отсутствуют модификаторы доступа — они пользуются доступом по умолчанию, а следовательно, их нельзя вызывать из программы.