VB.NET编程语言与Java怨言机制大致相同,其中也包括很多访问级别,方便我们提高程序开发中的安全性。已声明元素的“访问级别”是指能够对其进行访问的程度,即什么代码对其具有读取或写入权限。这不仅取决于元素本身的声明方式,还取决于元素容器的访问级别。不能访问包含元素的代码也不能访问该元素中包含的任何元素,甚至那些声明为 Public 的元素也不例外。例如,Private 结构中的 Public 变量可从包含该结构的类内部访问,但不能从该类的外部访问。#t#
Public
声明语句中的 Public (Visual Basic) 关键字表明可从以下位置访问元素:同一项目中任意位置的代码,引用该项目的其他项目,以及由该项目生成的任何程序集。下面的代码显示一个 Public 声明的示例。
Public Class classForEverybody仅可以在模块、接口或命名空间级别使用 Public。这意味着可以在源文件级别或命名空间级别,或者在接口、模块、类或结构内部声明 public 元素,但不能在过程内声明它。
Protected
声明语句中的 Protected (Visual Basic) 关键字表明仅可以从同一个类内部或从该类派生的类中访问元素。下面的代码显示一个 Protected 声明的示例。
Protected Class classForMyHeirs仅可以在声明类的成员时和仅在类级别使用 Protected。这意味着可以在类中声明 protected 元素,但不能在源文件级或命名空间级,或者在接口、模块、结构或过程内部声明它。
Friend
声明语句中的 Friend (Visual Basic) 关键字表明可以从同一程序集内部访问元素,而不能从程序集外部访问。下面的代码显示一个 Friend 声明的示例。
Friend stringForThisProject As String仅可以在模块、接口或命名空间级别使用 Friend。这意味着您可以在源文件级别或命名空间级别,或者在接口、模块、类或结构内部声明 friend 元素,但不能在过程内声明它。
Protected Friend
声明语句中的 Protected 和 Friend 关键字一同出现时,表明可从以下位置访问元素:派生类或同一程序集内,或两者皆可。下面的代码显示示例 ProtectedFriend 声明。
Protected Friend stringForProjectAndHeirs As String仅可以在声明类的成员时且仅在类级别使用 ProtectedFriend。这意味着可以在类中声明 protected friend 元素,但不能在源文件级别或命名空间级别,或者在接口、模块、结构或过程内声明它。
Private
声明语句中的 Private (Visual Basic) 关键字表明仅可以从同一模块、类或结构内访问元素。下面的代码显示一个 Private 声明的示例。
Private numberForMeOnly As Integer仅可以在模块级别使用 Private。这意味着可以在模块、类或结构内部声明 private 元素,但不能在源文件级别或命名空间级别、接口内部或者过程内声明它。
在模块级别,不带任何访问级别关键字的 Dim 语句与 Private 声明等效。但是,您可能希望使用 Private 关键字使代码更容易阅读和解释。