有沒有一種方法來初始化虛擬自動屬性,而不使用構造? 或者我應該只是做一個私人領域?如何初始化虛擬自動屬性?
回答
虛擬與否,你需要一個構造函數。或者它將具有它的類型的默認值。
因爲這是不好的調用虛擬成員在構造函數中
正確,你將不得不認真步驟。正常規則適用。爲了安全起見,你要設計你的屬性,以便它不需要初始化,或者只在類或屬性被密封的派生構造函數中初始化它。
注意,將有大量的病例,其中自動屬性使得幾乎沒有任何意義。
在虛擬自動屬性的情況下,我會說,初始化部分,使這個問題,並會刪除「自動」的一部分,並創建一個支持字段。
當然,因爲在構造函數之前調用基構造函數,所以如果基構造函數將該屬性初始化爲錯誤的值,後構造函數有可能在構造該對象之前糾正這個錯誤。
是的,但假設一個派生類中實現更復雜的getter或setter,依靠派生類的其他領域。那些其他領域將不會被初始化。 – 2009-08-14 20:58:46
同意,但這是從構造函數的角度來看所有虛擬代碼的問題。 – 2009-08-15 11:26:30
爲了記錄,我認爲創建一個最實用的解決方案支持領域。 – 2009-08-15 19:14:21
- 1. 初始化虛擬屬性
- 2. 何時初始化自動屬性?
- 3. 城堡DynamicProxy自動屬性初始化
- 4. 屬性初始化
- 5. 初始化屬性
- 6. 虛擬捲上的Git初始化
- 7. Java虛擬機的內存初始化
- 8. java虛擬機初始化錯誤
- 9. C++虛擬繼承初始化順序
- 10. Python:如何模擬類屬性初始化函數
- 11. 如何初始化'attr_accessor'屬性值?
- 12. 何時執行C#自動屬性初始化?
- 13. 初始化騾3 log4j屬性動態
- 14. 動態虛擬屬性?
- 15. 自動初始化?
- 16. 屬性初始化Java
- 17. 靜態屬性初始化
- 18. Grails屬性初始化
- 19. Moose屬性初始化
- 20. JSF Bean屬性初始化
- 21. 屬性沒有初始化
- 22. 初始化對象屬性
- 23. 未初始化類屬性
- 24. 初始化類屬性
- 25. 虛擬屬性
- 26. 虛擬機自動化
- 27. 初始化C#自動性能
- 28. 自動初始化和const正確性
- 29. 如何將Ref <?>字段初始化爲虛擬值
- 30. 如何使用虛擬主機初始化nowjs
我不明白的問題,強調_virtual_。如果不使用構造函數,則無法初始化非虛擬自動屬性。 – 2009-08-14 20:11:03
因爲它是不好的調用虛擬成員調用構造函數中:) – 2009-08-14 20:19:01