使用模塊而不是VB中的類有什麼好處?它們有何不同,以及使用模塊有哪些優點/缺點?在VB或VB.NET中,我使用兩者。VB中的類與模塊的比較
2
A
回答
7
(A)模塊
和
(B)類僅Shared
功能
解決同樣的問題:兩個允許你邏輯組一組功能。使用一個模塊的
優點:
- 它允許你定義extension methods。
- 對於有人閱讀你的代碼,很明顯這不是代表一組狀態對象的類,而只是一個「函數容器」。
優點使用一類具有共同功能的:
- 可以很容易地將其與實例延伸(=非共享)的變量,函數和屬性以後。
所以,如果你正在寫一組輔助功能,並希望在邏輯組他們(其中該基團的狀態的概念只是沒有意義),使用一個模塊 - 這是正是他們在這裏。另一方面,如果你有一個概念上適合已經存在的類的函數,把它作爲共享函數添加到該類中。
1
一個主要區別是模塊中的方法可以全局調用,而類中的方法不能。因此,您可以撥打MyMethod()
而不是ModuleName.MyMethod()
。這是一種優勢還是劣勢取決於具體情況。
+0
您可以避免必須使用'Imports ClassName'鍵入'ClassName.SharedMethodName',那麼您只需鍵入'SharedMethodName' – 2011-08-08 09:04:25
0
模塊來得早,現在VB.NET只是讓它向後兼容。模塊和類幾乎相同。您可以直接調用Module.Function(),因爲它在類中被視爲Shared
函數。類可以定義Shared
函數/方法,並且還可以創建類似Dim c as Class = New Class()
的實例。
避免使用模塊,而改爲使用Class。對你來說編寫一個更好的OOP編程是有好處的。
相關問題
- 1. 比較在類列表-VB
- 2. numpy模塊陣列與列表比較
- 3. 擴展模塊中的可比較類型
- 4. 比較VB中的字符串6.5
- 5. 比較數據行中的值VB
- 6. vb中的時間比較和差異
- 7. Ruby Anagram比較模塊
- 8. 比較Oracle Forms模塊
- 9. 與int類比較
- 10. 字符串比較與目標C中的類比較-C
- 11. 模板類中的比較器
- 12. 用於文本比較的Perl模塊
- 13. 用於PHP的圖像比較模塊
- 14. 類與類的VB
- 15. ASP.NET VB比較3日期
- 16. 將C++中的兩個向量與模板類相比較
- 17. UMDF瞭解與Linux內核模塊/驅動程序的比較
- 18. 單個NgModule與Angular 2的多個模塊相比較
- 19. 的CakePHP中可容納:模型「比較」是不是與模型「比較」相關
- 20. 在Ruby中包含與擴展和可比較模塊
- 21. 比較模型類型Laravel
- 22. 在ASP/VB中比較時間
- 23. Haskell中的類型比較
- 24. VB.NET中的類型比較
- 25. Python中的「類型比較」
- 26. 與EMF的EMF模型比較
- 27. .Net模式與GOF的比較
- 28. 與無變量類型的比較
- 29. 與內部類和比較的泛型
- 30. 與Scala的數字類型比較?
看到此複製:http://stackoverflow.com/questions/881570/classes-vs-modules-in-vb-net – Kamarey 2010-04-15 14:55:33
它沒有回答我的問題。我確實看到它,謝謝。 – 2010-04-15 14:57:35
閱讀完之後,您的問題還剩下什麼?請更具體一些,因爲你的問題聽起來很像那個。 – 2010-04-15 17:31:48