c# - .NET 类加载器是否有标准的工作方式?

标签 c# .net vb.net classloader static-constructor

.NET 类加载器是否有标准的工作方式?

假设我编译这段代码:

Option Strict On : Option Explicit On

Module Module1
    Sub Main()
        System.Diagnostics.Debug.WriteLine("Main")
        Dim g = C.A
    End Sub
End Module

Public Class C
    Shared Sub New()
        System.Diagnostics.Debug.WriteLine("Init C")
    End Sub
    Shared Property A As New A
End Class

Public Class A
    Shared Sub New()
        System.Diagnostics.Debug.WriteLine("Init A")
    End Sub
    Public Sub New()
        System.Diagnostics.Debug.WriteLine("A Constructor")
    End Sub
End Class

我能否保证编译后的代码(在所有已实现的平台上)具有以下输出?

Main
Init A
A Constructor
Init C

最佳答案

是的,调用静态和实例构造函数的顺序是语言规范的一部分。所有符合规范的编译器都应为此程序发出相同的 IL。

关于c# - .NET 类加载器是否有标准的工作方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315821/

相关文章:

c# - 在具有动态对象名称的 JSON 上使用 JsonConvert.DeserializeObject

c# - 使用 .NET 创建磁盘镜像

.net - 如何在winforms的设计模式下执行代码

c# - 可以使用通配符指定目录路径吗?

c# - TextBlock.GetBindingExpression 返回 NULL

c# - Owin auth - 如何获取请求身份验证 token 的客户端的 IP 地址

.net - 谁能向我解释以下代码为何引发System.Reflection.AmbiguousMatchException?

C# 为 WPF 窗口禁用 aero 捕捉

javascript - 需要 URL 的正则表达式

c# - 运算符 '!' 不能应用于 x 类型的操作数