Основы 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.
Обратите внимание, что оба конструктора без параметра. Противоречия
тут нет, так как один из них - статический, а другой - нет.
|