gpt4 book ai didi

c# - 静态类是否创建实例? msdn 说我没有,但为什么构造函数呢?

转载 作者:行者123 更新时间:2023-12-02 04:48:57 25 4
gpt4 key购买 nike

我偶然发现了试图理解单例对象和静态类之间的区别

我随处看到的最简单的信息是静态类在单例需要时不创建实例

但为什么我可以从静态类中获得静态构造函数呢?这意味着什么?它不创建一个实例吗?

如果你在静态类构造函数上运行带断点的简单代码,你会看到它到达了它

我很困惑,有人吗?

最佳答案

But why that hell can I have the static constructor from static class? what does that mean? doesn't it create an instance?

没有。静态构造函数允许您初始化类的 static 成员(基本上是该类的静态状态)。

对于单例模式,静态构造函数(或静态内联初始化程序)通常会创建一个实例,但该实例仍然是通过普通的非静态构造函数创建的。然后将其存储在静态变量(单个“实例”变量)中。

延迟初始化的单例将避免这种情况,并根据需要初始化静态变量。

A static class是另一回事-静态类永远不会作为单例工作,因为您无法创建静态类的实例。静态类专门用于您永远不会创建实例的情况。

单例将(通常)通过非静态类创建,但使用私有(private)构造函数(因此实例只能在该类中创建)。将有一个静态属性用于检索该类的单个实例。类实例将按需创建或在静态构造函数中创建。

关于c# - 静态类是否创建实例? msdn 说我没有,但为什么构造函数呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com