Основы C#. Урок 23. Статические конструкторы
Статическими к классе могут быть и конструкторы. Если обычный конструктор вызывается в момент создания экземпляра класса, то статический - в самом начале, т. е. перед созданием первого экземпляря класса.
В статическом конструкторе можно задать начальные значения для статических переменных класса. Вот пример:
class MyClass { public static int data; //Статический конструктор static MyClass() { data=10; } //Конструктор public MyClass() { data++; } } class Test { public static void Main() { MyClass a=new MyClass(); MyClass b=new MyClass(); System.Console.WriteLine(MyClass.data); } }
Указанный фрагмент выведет на экран 12. Действительно, сначала вызовется статический конструктор, который присвоит значение 10 перемнной data. Затем для каждого созданного экземпляра класса MyClass вызовется обычный конструктор, к котором переменная data увеличится каждый раз на 1.
Обратите внимание, что оба конструктора без параметра. Противоречия тут нет, так как один из них - статический, а другой - нет.