zoukankan      html  css  js  c++  java
  • Singleton 单例模式 泛型 窗体控制

    MDI子窗体

    控制单例

     /// <summary>
        /// 单例提供者
        /// </summary>
        /// <typeparam name="T">需要的类</typeparam>
        public class SingletonProvider<T> where T : System.Windows.Forms.Form, new()
        {
            private static T instance = default(T);
            private static readonly object obj = new object();
    
            /// <summary>
            /// 获取窗体的唯一实例
            /// </summary>
            public static T Instance
            {
                get
                {
                    //双检锁(double-check locking)保证线程安全
                    if (instance == null)
                    {
                        lock (obj)
                        {
                            if (instance == null)
                            {
                                instance = new T();
    
                                //加上实例关闭事件,窗体就会自动回收,即instance=null;
                                instance.FormClosed += new System.Windows.Forms.FormClosedEventHandler(instance_FormClosed);
                            }
                        }
                    }
                    return instance;
                }
            }
            /// <summary>
            /// 当窗体关闭时将Instance置空
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            static void instance_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
            {
                instance = default(T);
            }
        }
  • 相关阅读:
    人机界面设计
    可用性
    * 产品设计
    界面设计
    原型设计工具——Axure
    原型系统
    交互设计
    原型设计
    Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql
    第1章 游戏之乐——NIM(2)“拈”游戏分析
  • 原文地址:https://www.cnblogs.com/cyehu/p/3370379.html
Copyright © 2011-2022 走看看