C#之初识单例模式

当咱们使用QQ的时候就会发现,他能够启动多个QQ,可是有时候,咱们不想这样作,这时候咱们就须要使用到单例模式.
1.将Form2的构造函数转为私有
using System.Windows.Forms;
namespace 单例模式
{
    public partial class Form2 : Form
    {
        private Form2()
        {
            InitializeComponent();
        }
    }
}

2.提供一个静态方法,返回一个对象java

using System.Windows.Forms;
namespace 单例模式
{
    public partial class Form2 : Form
    {
        private Form2()
        {
            InitializeComponent();
        }
        public static Form2 GetSingle()
        {
            Form2 form = new Form2();
            return form;
        }
    }
}

3.在Form1中调用函数

using System;
using System.Windows.Forms;
namespace 单例模式
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = Form2.GetSingle();//new Form2();
            form.Show();
        }
    }
} 

4.在Form2中建立一个单例spa

using System.Windows.Forms;
namespace 单例模式
{
    public partial class Form2 : Form
    {
        //全局惟一的单例
        public static Form2 FrmSingle = null;//这是一个静态的字段,初值设为null
        private Form2()
        {
            InitializeComponent();
        }
        public static Form2 GetSingle()
        {
            if (FrmSingle == null)//作一个判断,若是FrmSingle为null的时候在建立对象
            {
                FrmSingle = new Form2();//建立完这个对象以后不给Form2,给FrmSingle
            }
            return FrmSingle;//返回FrmSingle
        }
    }
}

作完以上的步骤,运行Form1,无论点几回建立按钮,都只是建立的哪个对象.orm

相关文章
相关标签/搜索