gpt4 book ai didi

c# - 关于Singleton C#的两个问题

转载 作者:行者123 更新时间:2023-11-30 20:12:29 24 4
gpt4 key购买 nike

考虑以下代码

 public sealed class Singleton
{
private static readonly Singleton instance = new Singleton();
public static Singleton Instance { get { return instance; } }

static Singleton() {}
private Singleton() {}
}

问题

1) 这里静态构造函数的目的是什么? (我知道在创建类的第一个实例之前将调用静态构造函数)。但是在上面代码的上下文中如果没有静态构造函数,我不能使用它吗?

2)听说singleton的优点之一就是可以扩展成factory。 由于它是一个密封类,您将如何将其扩展到工厂中?您能举一些例子吗?

最佳答案

静态构造函数确保单例在使用之前不会真正被构造。如果静态构造函数不存在,则 CLR 在运行类型初始值设定项时有更多的回旋余地。看我的article on beforefieldinit和我关于 .NET 4 type initialization changes 的博文了解更多信息。

至于将单例变成工厂 - 你真的必须提供更多背景信息。您的 Instance 属性可以选择是否总是返回对同一对象的引用,我想...

关于c# - 关于Singleton C#的两个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587880/

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