C# 泛型静态字段与静态构造函数

每个封闭类型都会有一个自己的静态字段集 每个封闭类型的静态构造函数仅会执行一次。

例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class Outer<T>
{
    public class Inner<U,V>
    {
        static Inner()
        {
            Console.WriteLine($"Outer<{typeof(T).Name}>,Inner<{typeof(U).Name},{typeof(V).Name}>");
        }
        public void Test(){}
    }
}

那么我们进行以下调用:

1
2
3
Out<int>.Inner<string,DateTime>.Test();
Out<string>.Inner<int,object>.Test();
Out<int>.Innter<string,DateTime>.Test();

那么第一二行会打印出他们类型参数的Name属性,而第三行由于**每个封闭类型的静态构造函数仅会执行一次。**的规定,所以不会产生任何输出。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计