`

C#单例模式的三种写法

    博客分类:
  • C#
阅读更多

第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我……

public class Singleton
{
    private static Singleton _instance = null;
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)

        {
            _instance = new Singleton();

        }

        return _instance;
    }

}

第二种考虑了线程安全,不过有点烦,但绝对是正规写法,经典的一叉 

public class Singleton
{
    private volatile static Singleton _instance = null;
    private static readonly object lockHelper = new object();
    private Singleton(){}
    public static Singleton CreateInstance()
    {
        if(_instance == null)
        {
            lock(lockHelper)
            {
                if(_instance == null)
                     _instance = new Singleton();
            }

        }

        return _instance;
    }

}

第三种可能是C#这样的高级语言特有的,实在懒得出奇

public class Singleton
{

    private Singleton(){}
    
public static readonly Singleton instance = new Singleton();
}  
哦,shit!

分享到:
评论

相关推荐

    unity中涉及的三种单例模式

    下面将详细介绍在Unity中涉及的三种单例模式:C#经典单例、Unity内置单例以及一种线程安全的改进版单例。 1. C#经典单例: 这是最常见的单例实现方式,通常通过私有构造函数和一个静态方法来保证只有一个实例。在...

    c# 单例模式的实现方法

    c# 中实现单例模式有多种方法,本文将详细介绍饿汉式和懒汉式两种实现方法。 饿汉式 饿汉式是最简单的单例模式实现方法,在静态构造函数中立即实例化。下面是一个典型的饿汉式单例模式实现代码: ```csharp public...

    单例的多种写法和说明比较

    在Java、C#等面向对象语言中,单例模式被广泛应用,尤其是在需要频繁创建和销毁的对象,或者需要全局访问点的情况下。 ### 1. 懒汉模式(Lazy Initialization) 懒汉模式是在第一次需要使用单例时才进行实例化,...

    C#中单例模式的三种写法示例

    在C#中,实现单例模式有多种方式,这里主要介绍三种常见的方法。 **第一种:懒汉式(非线程安全)** 这种实现方式是最简单的,但并不适用于多线程环境。它的核心思想是在第一次调用`GetInstance`方法时才创建实例...

    C#中的五种单例模式(SIngleton)

    1. 写法一(只适用于单线程环境) public sealed class Singleton1 { private Singleton1(){} private static Singleton1 instance = null; public static Singleton1 Instance { get { if...

    C#设计模式.rar

    实现C#中的单例模式通常有两种方法:懒汉式(线程不安全)和饿汉式(线程安全)。更安全的实现方式是使用`Lazy<T>`类或`双重检查锁定`机制。 2. **简单工厂模式**:简单工厂模式是一种静态工厂方法,用于创建对象,...

    UnitySingleton:在Unity中实现单例模式的最佳方法

    在Unity中实现单例模式的最佳方法。 通过使用这种模式,您将能够定义Global变量和类,并在Global中使用它们的方法和属性。 对于使用Unity引擎制作的大多数游戏来说,这种模式都是必须的。 :open_book: 产品特点 ...

    C#语言参考+C#基本书写规范word文件教程,是.net爱好者很好的学习资料

    7. **设计模式**:了解和应用常见的设计模式,如工厂模式、单例模式、观察者模式等,提升代码质量。 通过这个教程,.NET爱好者可以系统地学习C#语言,从基础到高级,从理论到实践,全面了解C#的特性和最佳实践。...

    C#面试题库

    - **单例模式**:确保一个类只有一个实例,并提供全局访问点。 - **工厂模式**:提供一个创建对象的接口,但让子类决定实例化哪一个类。 - **建造者模式**:将复杂对象的构建与其表示分离,使得相同的构建过程...

    C#经典知识点源码总结

    在设计模式方面,C#同样能很好地支持各种设计模式,如工厂模式、单例模式、观察者模式等,这些都是提高代码质量和可维护性的关键。 最后,压缩包中的"Stu"可能是"Student"的缩写,意味着可能包含了一些关于学生管理...

    C#面试技术题深度理解

    9. **设计模式**:熟悉常见的设计模式,如工厂模式、单例模式、观察者模式、装饰器模式等,它们在实际项目中的应用和优缺点。 10. **C#新特性**:关注C#的最新版本特性,如模式匹配、异步流、默认接口实现、空条件...

    c#,.net 程序员常见面试题大全(含答案)

    - **工厂模式**、**单例模式**、**观察者模式**等常见设计模式的实现和应用场景。 6. **异常处理**: - 学习如何使用try-catch-finally语句来捕获和处理异常,以及何时使用throw关键字。 7. **性能优化**: -...

    C#深入详解 (王寅永等)

    14. **设计模式**:作为高级主题,书中可能会介绍一些常见的设计模式,如工厂模式、单例模式、装饰器模式等,以及如何在C#中应用它们。 15. **异常处理**:学习如何正确使用try-catch-finally语句,理解异常的层次...

    C#使用程序代码100个

    12. **设计模式**:源代码可能包含了常见的设计模式,如工厂模式、单例模式、观察者模式等,这些都是软件工程的基石。 13. **数据库操作**:ADO.NET库允许与数据库交互,如SQL Server、MySQL、SQLite等,包括连接、...

    C#面试资料,囊括了个大IT公司招聘时的习题

    10. **设计模式**:熟悉常见的设计模式,如单例模式、工厂模式、观察者模式等,以及它们在实际开发中的应用。 11. **数据库操作**:SQL基础,ADO.NET或Entity Framework的使用,以及数据库事务处理。 12. **Web...

    C#提升技术案例

    12. **设计模式**:理解并应用常见的设计模式,如单例、工厂、观察者等,可以提高代码质量。 通过实践这些案例,你将有机会深入了解C#的各个方面,并提升你的编程技巧。每个案例都应从需求分析、设计、编码到测试的...

    各个公司的十套C#面试题

    8. **设计模式**:面试中可能会涉及单例模式、工厂模式、观察者模式等常见的设计模式,理解它们的目的和应用场景是提升编程能力的关键。 9. **.NET框架**:理解.NET框架的基础结构,如CLR(Common Language Runtime...

    C# 面试题源代码大全..

    8. **设计模式**:面试中经常考察对常见设计模式的理解,如工厂模式、单例模式、装饰器模式等。源代码会包含这些设计模式的实际应用。 9. **.NET框架**:C#与.NET框架紧密相关,理解ASP.NET、WPF、WinForms、Entity...

    Visual C# 2005编程技巧大全第八部分.rar

    9. **设计模式**:如单例模式、工厂模式、装饰器模式等,这些都是软件设计的重要思想,有助于编写可维护和可扩展的代码。 10. **单元测试**:使用NUnit或Microsoft自带的Test Framework进行单元测试,确保代码质量...

Global site tag (gtag.js) - Google Analytics