关于Singleton C#的两个问题

Amu*_*tha 2 .net c# singleton design-patterns

请考虑以下代码

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

     static Singleton() {}
     private Singleton() {}
 }
Run Code Online (Sandbox Code Playgroud)

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

2)我听说单身人士的一个优点是它可以延伸到工厂.既然它是一个密封的类,你将如何将它扩展到工厂?你能举一些例子吗?

Jon*_*eet 7

静态构造函数确保单例在使用之前不会构造.如果静态构造函数不存在,CLR在运行类型初始化程序时有更多的余地.有关更多信息,请参阅我在beforefieldinit上的文章以及关于.NET 4类型初始化更改的博文.

至于将单身人士变成工厂 - 你真的必须提供更多的背景.您的Instance财产可以选择是否始终返回对同一对象的引用,我想...