在 C# Windows Forms 應用程式中,當我們需要開啟另一個表單時,必須先將該表單類別實例化。這是因為表單本質上是一個類別,而類別只是藍圖,並非實際可操作的物件。
實例化是指根據類別定義,在記憶體中建立一個具體的物件實例。簡單來說,就是使用 new 關鍵字為類別配置記憶體空間,並呼叫其建構函式進行初始化。
// 正確的做法:先實例化,再呼叫方法
Form2 form2 = new Form2(); // 實例化
form2.Show(); // 呼叫 Show 方法顯示表單
form2.Text = "子表單"; // 存取屬性
Show()、ShowDialog()、Close() 等都是實例方法,必須透過物件實例呼叫Text、Size、Location 等屬性屬於特定實例FormClosed、Load 等事件需要綁定到具體實例可以把類別想像成「建築藍圖」,物件則是「依照藍圖蓋好的房子」。你無法直接住進藍圖裡,必須先蓋好房子(實例化)才能入住(使用功能)。
// 錯誤:嘗試直接在類別上呼叫實例方法
Form2.Show(); // 編譯錯誤:需要物件參考
若希望全程式只有一個表單實例,可使用單一實例模式:
public partial class Form2 : Form
{
private static Form2 _instance;
public static Form2 Instance
{
get
{
if (_instance == null || _instance.IsDisposed)
_instance = new Form2();
return _instance;
}
}
private Form2() { InitializeComponent(); } // 私有建構函式
}
// 使用方式
Form2.Instance.Show();
理解類別與實例的關係,是掌握 C# 物件導向程式設計的基礎。建議初學者多練習,並參考官方文件深入了解。