class="brush:java;gutter:true;">using System.Windows.Forms;
namespace 单例模式
{
public partial class Form2 : Form
{
private Form2()
{
InitializeComponent();
}
}
}
2.提供一个静态方法,返回一个对象
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中创建一个单例
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,不管点几次创建按钮,都只是创建的哪一个对象.