静态初始化:
C#与公共语言运行库提供了一种“静态初始化”方法,这种方法不需要开发人员显式地编写线程安全代码,即可解决多线程环境下他是不安全的问题。先看代码:
Code
public sealed class Singleton //sealed阻止发生派生,而派生可能会增加实例
{
private static readonly Singleton instance=new Singleton();//readonly意味着只能在静态初始化期间或类构造函数中分配变量
private Singleton(){}
public static Singleton GetInstance()
{
return instance;
}
}
public sealed class Singleton //sealed阻止发生派生,而派生可能会增加实例
{
private static readonly Singleton instance=new Singleton();//readonly意味着只能在静态初始化期间或类构造函数中分配变量
private Singleton(){}
public static Singleton GetInstance()
{
return instance;
}
}
所谓的静态初始化方式,就是在类被加载时实例化的一种方式。这样做的缺点是要提前占用系统资源。优点是更简单地解决了线程安全问题。但是他同样解决了单件模式试图解决的两个基本问题:全局访问和实例化控制。
后来,发现有人对延迟初始化说的也是含糊不清,就不了解了,有了以上的就可以了。