我有一個引用服務層對象的屬性,每次使用表單時都需要它。 什麼是最好的實踐:在構造函數或表單的加載事件中初始化一個屬性?在加載事件或構造函數中初始化屬性?
2
A
回答
3
如果表單的狀態的有效性取決於屬性被設置,則設置在構造的性質。您總是希望您的對象在構建完成後處於有效狀態。
0
在構造函數中。通常情況下,你需要設置一些表單,或者在實際顯示錶單之前設置其他類型的表單。在這些情況下,甚至在表單實際加載之前,您會希望設置所有實例變量。
0
構造應負責初始化,除非你有特殊需要或依賴初始化表格裝入變量,比如它初始化的東西,是依賴於別的東西。
2
呀,但要小心你在一個窗體的構造做了什麼,爲可視化設計器,當您打開編輯的形式將運行此。
如果你把任何東西在這裏,依賴於其他的東西被設立在運行時,很容易引起錯誤,你將無法編輯表單佈局。
我會說把它放在窗體的Load這個原因。
0
你應該初始化在構造函數的性質。每個表單實例顯然只調用一次構造函數。每次顯示錶單時都會調用加載事件處理程序。此外,如果您在加載事件處理程序中執行了初始化工作(例如填充組合框),則必須先編寫一些非常難看的代碼,以便在顯示錶單之前在該組合框中預先選擇一個值。這只是一個例子。希望有所幫助。
相關問題
- 1. 在構造函數中初始化EF POCO標量屬性
- 2. 如何在JavaScript構造函數中初始化屬性
- 3. 在構造函數中初始化屬性內的列表?
- 4. XMLEncoder writeObject跳過在構造函數中初始化的屬性
- 5. 在默認的構造函數初始化屬性
- 6. 類的初始化 - 屬性沒有默認構造函數
- 7. 沒有初始化屬性的Matlab類構造函數
- 8. 在構造函數或字段聲明中初始化列表
- 9. 在構造函數或聲明中初始化變量
- 10. 在Getter或構造函數中初始化成員
- 11. 內聯或在構造函數中初始化字段
- 12. 類的構造函數初始化?
- 13. C++模板構造函數初始化
- 14. 初始化構造函數C++
- 15. 缺少構造函數初始化
- 16. 構造函數初始化混淆
- 17. 構造函數初始化和字典
- 18. Java構造函數初始化?
- 19. 長構造函數初始化列表
- 20. 調用構造函數並初始化
- 21. 變量初始化和構造函數
- 22. 用super構造函數初始化()
- 23. 使用已在構造函數中初始化的類的屬性
- 24. 在構造函數中初始化靜態函數指針
- 25. Java:在構造函數內部或外部初始化對象?
- 26. 在C++中的類構造函數中初始化列表初始化
- 27. C++ - 在頭文件中初始化變量與構造函數
- 28. 在派生構造函數初始化列表中初始化模板
- 29. 在類構造函數中初始化結構體
- 30. 序列化在構造函數中初始化的映射
你是對的,你需要小心。但是,如果要設置的屬性是類不變式,那麼意味着除非設置了這些屬性,否則沒有其他客戶端應該觸摸該對象,在這種情況下,構造函數是唯一合理的位置。推論:依賴於運行時初始化的屬性不應該是設計器管理類的類不變量。 – 2009-10-26 17:09:34