我在調試一個簡單的應用程序,它有三種形式,我想到當我關閉一個表單,然後再次打開(單擊一個顯示相應表單的按鈕)時,將再次創建表示該表單的對象。 我認爲這會消耗不必要的資源。當關閉並重新打開時,是否有任何方法不能重新創建表單的實例?
那麼,如何在執行程序時只創建所有表單的一個實例?
我在調試一個簡單的應用程序,它有三種形式,我想到當我關閉一個表單,然後再次打開(單擊一個顯示相應表單的按鈕)時,將再次創建表示該表單的對象。 我認爲這會消耗不必要的資源。當關閉並重新打開時,是否有任何方法不能重新創建表單的實例?
那麼,如何在執行程序時只創建所有表單的一個實例?
您應該能夠關閉關閉事件,並且您需要的所有設置都是將要關閉的表單設置爲隱藏狀態,而不是實際關閉它。然後通過Singleton提供表單,該單元格負責表單本身的初始化和呈現。
請注意,您可能仍希望釋放您隱藏的表單所使用的其他資源,例如文件和/或連接。
請注意,當您不使用它們時,將內存保存在內存中會增加應用程序的內存佔用量。
你所描述的聲音聽起來像是Singleton模式。
private MyForm() {
}
private static MyForm _instance;
public static MyForm Instance => _instance ?? (_instance = new MyForm());
設計師可能會開始亂七八糟,因爲構造函數是私有的。此外,你不能處理/關閉表單了。這迫使你使表單無法取代,而不是擺脫它們
是的,這是一個需要仔細評估的要點。謝謝。 –