【问题标题】:How does the CLR handles static classes?CLR 如何处理静态类?
【发布时间】:2014-09-03 11:36:01
【问题描述】:

谁能解释 CLR 如何处理静态类? CLR 是否创建一个单例实例来在内部处理静态类?如果没有,为什么我们在 C# 中有一个静态构造函数? (根据我的理解,我们只使用构造函数来实例化类)

【问题讨论】:

    标签: c# .net static clr static-constructor


    【解决方案1】:

    首先,CLR 中没有静态类。 CLR 对静态类一无所知。 这是C#的特点。

    静态类被编译成abstractsealed 类。设置为abstract 可防止实例化,sealed 可防止继承。

    静态类没有什么特别之处,它只是一个简单的类,所有成员都是静态的。

    是,CLR 在内部创建一个单例实例来处理静态 上课?

    ,它是抽象的,不能实例化。

    如果不是,为什么我们在 C# 中有一个静态构造函数?

    当第一次引用或实例化类型时,将调用静态构造函数。用于初始化类的静态成员。

    When is a static constructor called in C#?

    【讨论】:

      【解决方案2】:

      static 构造函数在第一次引用该类型时被调用。不必是 static 类也可以有 static 构造函数。

      CLR 不会创建 static 类的单例实例。它确实将 static 变量保留在内存中,尽管在它们被初始化之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-15
        • 2014-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-07
        相关资源
        最近更新 更多