2011-10-21 144 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]