2011-10-21 184 views
3

在模塊的頭部,我希望聲明一些全局變量以用於各種子/函數。Dim vs Private/Public

是什麼

Dim x as stringPrivate x as string/Public x as string之間的區別,當我將使用一個比其他?

+0

不要忘了'朋友X作爲String' –

+0

這[文章] [1]有一個更好的答案。 [1]:http://stackoverflow.com/questions/5401372/difference-between-dim-and-private-inside-a-vb-net-form – gonzobrains

回答

8

私人和公共控制變量的範圍或對象正在聲明。

Private將只允許相關模塊/班/任何訪問實例

public的成員將允許在同一範圍內的模塊/類/無論訪問任何東西。

Dim默認爲公共或私人,具體取決於您的工作內容。例如,類將默認爲私有。我建議閱讀封裝和麪向對象以獲得更好的感覺。

+0

是的,但有什麼,如果你的區別使用Dim還是不? – gonzobrains

+0

請再次閱讀答案。我說暗淡的默認範圍是公開還是私人,取決於你是分別在結構還是班級。 – MGZero

+0

可以使用暗淡的默認設置的更多細節 – mattumotu

0

他們是不同的,但相關的東西。

Dim Statement (Visual Basic) [MSDN]告訴我們:

[點心]聲明和一個或多個變量分配存儲空間。

Dim關鍵字是可選的,如果指定下列任何修飾符通常被省略:公共,保護,朋友,受保護的朋友,專用,共享,陰影,靜態,只讀,或WITHEVENTS。

Access Levels in Visual Basic [MSDN]告訴我們:

私人(和公共,保護,朋友,保護朋友)的訪問修飾符用於指定「什麼樣的代碼有權閱讀或寫它。」

在模塊級,無任何訪問級別關鍵字Dim語句相當於一個私有聲明。但是,您可能希望使用Private關鍵字來使代碼更易於閱讀和解釋。

所以Private x As StringDim Private x As String(但如果你鍵入此Visual Studio將刪除DIM)

Dim x As String相當於Private x As String除了在結構(它相當於Public x As String)和接口,其中相當於聲明變量是不允許的 - 見Declaration Contexts and Default Access Levels (Visual Basic) [MSDN]