我想知道,一般在C#中,构造函数的概念是,基类缺点首先应该执行,但为什么我看到派生类静态构造函数被调用然后基类缺点.有人可以解释一下吗?:(
那么,这就是静态构造函数的重点; 它与继承无关.
引用MSDN
在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类.
你可以声明自己的身体,而不必担心何时会被调用(也不框架给你任何保证在这方面,但它会在手之类的任何实例之前运行已创建).
编辑
哦,还有一些你应该注意的东西,它与泛型有关,即使它可能是显而易见的.
请考虑以下代码段:
class Foo<T> {
static Foo() {
Console.WriteLine("Danger, Will Robinson!");
}
}
Run Code Online (Sandbox Code Playgroud)
这里静态构造函数将被执行T,因为当然:
typeof(Foo<Bar>) != typeof(Foo<Baz>)
Run Code Online (Sandbox Code Playgroud)