C# singleton怎样保证唯一实例

   2024-10-02 4570
核心提示:在C#中,可以通过以下方式来保证单例模式的唯一实例:私有构造函数:确保外部无法直接实例化该类。静态变量:在类中定义一个静态

在C#中,可以通过以下方式来保证单例模式的唯一实例:

私有构造函数:确保外部无法直接实例化该类。

静态变量:在类中定义一个静态变量用于存储唯一实例。

静态方法:通过一个静态方法来获取该类的唯一实例,如果不存在则创建一个新实例。

线程安全:使用线程安全的方式来保证在多线程环境下也只有一个实例被创建。

下面是一个简单的示例代码:

public class Singleton{    private static Singleton instance;    private static readonly object lockObject = new object();    private Singleton()    {    }    public static Singleton GetInstance()    {        if (instance == null)        {            lock (lockObject)            {                if (instance == null)                {                    instance = new Singleton();                }            }        }        return instance;    }}

在上面的代码中,通过私有构造函数和静态方法 GetInstance() 来实现单例模式,并通过双重锁定(double-checked locking)来确保线程安全。当第一个线程访问 GetInstance() 方法时,会判断 instance 是否为空,如果为空则加锁并再次检查,确保只有一个实例被创建。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号