thể trùng lặp:
What is the static variable initialization order in C#?Các quy tắc để khởi tạo thứ tự trong C# là gì?
Đối với niềm vui tôi chạy this code
Tôi đã không mong đợi 2 2 3
. Tôi đã mong đợi một lỗi trình biên dịch (phụ thuộc circlur) hoặc 8 5 3
.
Quy tắc khởi tạo thứ tự trong C# là gì?
-edit- i tried making a not static và tôi đã nhận được những gì tôi mong đợi. Tại sao là b 2 trước và bây giờ 5. Tôi không nghĩ rằng tôi sẽ thích các quy tắc ... May mắn thay tôi không bao giờ làm bất cứ điều gì như thế này vì vậy tôi đã không có một vấn đề.
using System;
public class Test
{
public static void Main()
{
A.t();
}
}
class A
{
static int a = B.b + c;
public static int c = 3;
static public void t()
{
Console.WriteLine("{0} {1} {2}", a, B.b, c);
}
}
class B
{
public static int b = A.c+2;
}
Nếu bạn nghĩ điều đó thật thú vị: hãy tưởng tượng bạn có các lớp học một phần, vì vậy không có thứ tự văn bản được xác định: http://stackoverflow.com/questions/7965830/is-the-textual-order-across-partial- các lớp được định nghĩa chính thức –