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