欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

C#的单例模式实现

来源:本站整理 作者:佚名 时间:2017-09-17 TAG: 我要投稿
                }
                return instance;
            }
        }
    }
        保举的解法一应用动态结构函数    
   // 在初始化动态变量instance的时刻创立一个实例
    // 因为C#是在挪用动态结构函数时初始化动态变量.NET运行时可以或许确保只挪用一次动态结构
    // 函数包管只初始化一次instance
    public sealed class Singleton4
    {
        private Singleton4() { }
        private static Singleton4 instance = new Singleton4();
        public static Singleton4 Instance
        {
            get
            {
                return instance;
            }
        }
    }
        保举的解法二 完成按需创立实例       
// 在内部界说了一个公有范例Nested。
    // 当第一次用到这个嵌套类的时刻会挪用动态结构函数创立Singleton5的实例instance
    public sealed class Singleton5
    {
        private Singleton5() { }
        public static Singleton5 Instance
        {
            get
            {
                return Nested.instance;
            }
        }
        class Nested
        {
            static Nested() { }
            internal static readonly Singleton5 instance = new Singleton5();
        }
    }
        扩大 界说一个表现总统的范例President可以或许从该范例承继出FrenchPresident    和AmericanPresident等范例。这些派生范例都只能发生一个实例       
public class President
    {
        private string name = "";
        private string country = "";
        public President() { }
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        public string Country
        {
            get { return country; }
            set { country = value; }
        }
    }
       
public sealed class FrenchPresident: President
    {
        private FrenchPresident():base() { }
        private static FrenchPresident instance = new FrenchPresident();
        public static FrenchPresident Instance
        {
            get { return (FrenchPresident)(Nested.instance); }
        }
        private class Nested
        {
            static Nested() { }
            internal static readonly FrenchPresident instance = new FrenchPresident();

上一页  [1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载