2010-04-15 48 views
2

使用模塊而不是VB中的類有什麼好處?它們有何不同,以及使用模塊有哪些優點/缺點?在VB或VB.NET中,我使用兩者。VB中的類與模塊的比較

+0

看到此複製:http://stackoverflow.com/questions/881570/classes-vs-modules-in-vb-net – Kamarey 2010-04-15 14:55:33

+0

它沒有回答我的問題。我確實看到它,謝謝。 – 2010-04-15 14:57:35

+1

閱讀完之後,您的問題還剩下什麼?請更具體一些,因爲你的問題聽起來很像那個。 – 2010-04-15 17:31:48

回答

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編程是有好處的。