Материал предоставлен http://it.rfet.ru

Статические конструкторы

Конструктор можно также объявить как 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 вызывается автоматически, когда класс загружается впервые, причем до конструктора экземпляра. Из этого можно сделать более общий вывод: статический конструктор должен выполняться до любого конструктора экземпляра. Более того, у статических конструкторов отсутствуют модификаторы доступа — они пользуются доступом по умолчанию, а следовательно, их нельзя вызывать из программы.

Применение ключевого слова staticСтатические классы