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