2010-08-01 4 views

ответ

0

Статический ctor будет называться первым.
Затем список значений будет вторым и ctor.
Подробнее о beforefieldinit here.

+0

ex. если я создаю объект класса Temp как Temp obj = new Temp(); Что будет содержать объект списка. Как он является общим, будут ли они содержать нулевые значения? предложите –

+0

Он не будет содержать никаких значений. Проверьте свойство Count. Также прочтите этот документ, чтобы понять, что связанный список: http://cslibrary.stanford.edu/103/LinkedListBasics.pdf Если под капотом он не получил значений, сам объект List не равен null. Он просто указывает на null. –

1

Кажется, что сначала инициализируется поле, затем вызывается статический конструктор, а затем конструктор.

class Test 
{ 
    string variable = new Func<string>(() => 
    { 
     Console.WriteLine("field initializer"); 
     return "VARIABLE"; 
    })(); 

    static string staticvariable = new Func<string>(() => 
    { 
     Console.WriteLine("static field initializer"); 
     return "STATICVARIABLE"; 
    })(); 

    static Test() 
    { 
     System.Console.WriteLine("static constructor"); 
    } 

    public Test() 
    { 
     System.Console.WriteLine("general constructor"); 
    } 
} 

Test t = new Test(); 

outuput:

статическое поле инициализатор
статический конструктор
поле инициализатор
главный конструктор

[править]

Нам жаль, что это не статическое поле и я этого не заметил.

Смежные вопросы