Đầu ra từ chương trình sau là:Hàm tạo tĩnh có thể chạy sau hàm tạo không tĩnh. Đây có phải là lỗi trình biên dịch không?
Non-Static
Static
Non-Static
Đây có phải là lỗi trình biên dịch không? Tôi dự kiến:
Static
Non-Static
Non-Static
vì tôi nghĩ hàm tạo tĩnh luôn được gọi trước hàm tạo không tĩnh.
Tôi đã thử nghiệm điều này với Visual Studio 2010 bằng cách sử dụng cả hai .net 3.5 và .net 4.0.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace StaticConstructorBug
{
class Program
{
static void Main(string[] args)
{
var mc = new MyClass();
Console.ReadKey();
}
}
public class MyClass
{
public MyClass()
{
Console.WriteLine("Non-static");
}
static MyClass()
{
Console.WriteLine("Static");
}
public static MyClass aVar = new MyClass();
}
}
bạn có thể giải thích lý do tại sao bạn mong đợi đó? Bởi vì đó không phải là những gì các đặc điểm kỹ thuật nói để mong đợi. –