c# - 为什么进入静态 .ctors 的顺序与继承类中的实例 .ctors 不同?

标签 c# .net c#-4.0 constructor static-constructor

为什么 var b = new B() 首先进入 static B() .ctor 而不是 static A () .ctor 而不是像实例构造函数那样反之亦然 (public A() 而不是 < strong>public B())?

public class A
{
    static A() {}
    public A() {}
}

public class B : A
{
    static B() {}
    public B() {}
}

最佳答案

从技术上讲,首先输入B 的实例构造函数。但它做的第一件事是调用 A 的构造函数,然后才转到用户定义的主体。

所以我假设在 B 的构造函数被输入之前,B 的静态构造函数需要运行。

然后B的构造函数调用A的构造函数,从而触发A的静态构造函数。

关于c# - 为什么进入静态 .ctors 的顺序与继承类中的实例 .ctors 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9141092/

相关文章:

c# - 使用本地常量

c# - 如何在 UWP 中获取另一个页面的值

c# - xamarin应用程序SIGSEGV错误

c# - Naudio: 如何播放 MP3 和 WAV 文件?

.net - WCF:我应该如何维护客户端和服务器中的契约(Contract)类?

c# - xp 的 Win32_MountPoint 替代品

c# - 将 xslt 输出转换保存在文件中

c# - 尝试在 VB.NET 中使用 C# Web 服务

c# - 如何在 .NET 中以编程方式启动 Amazon EC2 实例

c# - 如何使用线程模拟 Task.Wait