可以通过指定变量 的访问级别来控制变量的可用性。 访问级别确定哪些代码有权读取或写入变量。
成员变量 (在模块级别和任何过程外部定义)默认为公共访问,这意味着可以看到它们的任何代码都可以访问它们。 可以通过指定访问修饰符来更改此项。
局部变量 (在过程内定义)名义上具有公共访问权限,尽管其过程中只有代码可以访问它们。 不能更改本地变量的访问级别,但可以更改包含它的过程的访问级别。
有关详细信息,请参阅 Visual Basic 中的 Access 级别。
专用和公共访问
使变量只能从其模块、类或结构中访问
将变量的 Dim 语句 放置在模块、类或结构内,但在任何过程之外。
-
可以从模块、类或结构中的任何位置读取或写入变量,但不能从它外部读取或写入变量。
使变量可从任何可以看到它的代码访问
-或-
对于局部变量,请将
Dim
变量的声明放入一个过程之中。不要在
Public
Dim
语句中包含关键字。可以从过程中的任意位置读取或写入变量,但不能从外部读取或写入变量。
Protected 和 Friend 访问
可以将变量的访问级别限制为其类和任何派生类,或限制为其程序集。 还可以指定这些限制的合集,这允许从任何派生类或程序集内的其他位置访问代码。 可以通过在同一声明中合并Protected
和Friend
关键字来指定该联合。
使变量只能从其类和任何派生类中访问
将变量的
Dim
语句放在类内部, 但在任何方法之外。-
可以从类中的任何位置读取或写入变量,也可以从派生链中的任何类内部读取或写入变量,但不能从派生链中的任何类外部读取或写入变量。
使变量仅能从同一程序集内访问
将
Dim
变量的语句置于模块、类或结构中,但超出任何过程。-
可以从模块、类或结构中的任何位置以及同一程序集中的任何代码读取或写入变量,但不能从程序集外部读取或写入变量。
示例:
以下示例显示了具有Public
、Protected
、Friend
和Protected Friend
Private
访问级别的变量声明。 请注意,当语句指定访问级别时 Dim
,无需包含 Dim
关键字。
Public Class classForEverybody
Protected Class classForMyHeirs
Friend stringForThisProject As String
Protected Friend stringForProjectAndHeirs As String
Private numberForMeOnly As Integer
.NET Framework 安全性
变量的访问级别越严格,恶意代码可能利用它的可能性就越小。