.net 4种单例模式
发布日期:2021-05-09 02:10:05 浏览次数:11 分类:博客文章

本文共 2097 字,大约阅读时间需要 6 分钟。

本文介绍了C#下关于单例的4种实现方法。

using System;using System.Collections.Generic;using System.Text;namespace SingletonDemo{    ///     /// 1、普通单例    ///     public class SingletonA    {        private static SingletonA _instance = null;        private SingletonA() { }        public static SingletonA CreateInstance()        {            if (_instance == null)            {                _instance = new SingletonA();            }            return _instance;        }    }    ///     /// 2、线程安全单例    ///     public class SingletonB    {        private volatile static SingletonB _instance = null;        private static readonly object lockHelper = new object();        private SingletonB() { }        public static SingletonB CreateInstance()        {            if (_instance == null)            {                lock (lockHelper)                {                    if (_instance == null)                        _instance = new SingletonB();                }            }            return _instance;        }    }    ///     /// 3、使用.net特性的支持多线程的单件模式代码    ///     public sealed class SingletonC    {        private SingletonC() { }        public static readonly SingletonC Instance = new SingletonC();    }    ///     /// 4、使用 C# 2.0 泛型来完成单例模式的重用    ///     /// 
public class SingletonProvider
where T : new() { SingletonProvider() { } public static T Instance { get { return SingletonCreator.instance; } } class SingletonCreator { static SingletonCreator() { } internal static readonly T instance = new T(); } } ///
/// 4、业务类demo /// public class TestClass { private string _createdTimestamp; public TestClass() { _createdTimestamp = DateTime.Now.ToString(); } public void Write() { Console.WriteLine(_createdTimestamp); } } ///
/// 4、范型单例示例 /// public class demo { private void dosomething() { SingletonProvider
.Instance.Write(); } }}
上一篇:div模拟的小窗口
下一篇:MonoTouch:用.NET开发iPhone应用

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月10日 10时17分11秒