Với các lớp học sau:Tại sao một constructor tĩnh được gọi trên một lớp được sử dụng như một tham số kiểu generic?
public class Foo {
static Foo() {
Console.WriteLine("Foo is being constructed");
}
}
public class Bar {
public void ReferenceFooAsGenericTypeParameter<T>() {
Console.WriteLine("Foo is being referenced as a generic type parameter");
}
}
public class SampleClass
{
public static void Main()
{
new Bar().ReferenceFooAsGenericTypeParameter<Foo>();
}
}
Đầu ra là
Foo is being referenced as a generic type parameter
này có ý nghĩa, theo spec:
Một constructor tĩnh được gọi tự động để khởi tạo lớp trước ví dụ đầu tiên được tạo hoặc bất kỳ thành viên tĩnh nào được tham chiếu.
Nhưng tôi tò mò tại sao hàm tạo tĩnh không được gọi khi kiểu được tham chiếu dưới dạng tham số kiểu chung.
Đối tác câu hỏi tốt, điều này một chút tôi hôm nay –