1、将构造函数私有化。
    2、提供一个静态方法返回对象。
    3、创建一个单例。

    Form1:

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace _136_单例模式
    11. {
    12. public partial class Form1 : Form
    13. {
    14. public Form1()
    15. {
    16. InitializeComponent();
    17. }
    18. private void button1_Click(object sender, EventArgs e)
    19. {
    20. Form2 form2 = Form2.GetSingle(); //new Form2();
    21. form2.Show();
    22. }
    23. }
    24. }

    Form2:

    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Threading.Tasks;
    9. using System.Windows.Forms;
    10. namespace _136_单例模式
    11. {
    12. public partial class Form2 : Form
    13. {
    14. //全局唯一单例
    15. public static Form2 FrmSinger=null;
    16. private Form2()
    17. {
    18. InitializeComponent();
    19. }
    20. public static Form2 GetSingle()
    21. {
    22. if (FrmSinger==null)
    23. {
    24. FrmSinger = new Form2();
    25. }
    26. return FrmSinger;
    27. }
    28. }
    29. }