各種VB.NET訪問級(jí)別概念簡(jiǎn)述
VB.NET編程語言與Java怨言機(jī)制大致相同,其中也包括很多訪問級(jí)別,方便我們提高程序開發(fā)中的安全性。已聲明元素的“訪問級(jí)別”是指能夠?qū)ζ溥M(jìn)行訪問的程度,即什么代碼對(duì)其具有讀取或?qū)懭霗?quán)限。這不僅取決于元素本身的聲明方式,還取決于元素容器的訪問級(jí)別。不能訪問包含元素的代碼也不能訪問該元素中包含的任何元素,甚至那些聲明為 Public 的元素也不例外。例如,Private 結(jié)構(gòu)中的 Public 變量可從包含該結(jié)構(gòu)的類內(nèi)部訪問,但不能從該類的外部訪問。#t#
Public
聲明語句中的 Public (Visual Basic) 關(guān)鍵字表明可從以下位置訪問元素:同一項(xiàng)目中任意位置的代碼,引用該項(xiàng)目的其他項(xiàng)目,以及由該項(xiàng)目生成的任何程序集。下面的代碼顯示一個(gè) Public 聲明的示例。
Public Class classForEverybody僅可以在模塊、接口或命名空間級(jí)別使用 Public。這意味著可以在源文件級(jí)別或命名空間級(jí)別,或者在接口、模塊、類或結(jié)構(gòu)內(nèi)部聲明 public 元素,但不能在過程內(nèi)聲明它。
Protected
聲明語句中的 Protected (Visual Basic) 關(guān)鍵字表明僅可以從同一個(gè)類內(nèi)部或從該類派生的類中訪問元素。下面的代碼顯示一個(gè) Protected 聲明的示例。
Protected Class classForMyHeirs僅可以在聲明類的成員時(shí)和僅在類級(jí)別使用 Protected。這意味著可以在類中聲明 protected 元素,但不能在源文件級(jí)或命名空間級(jí),或者在接口、模塊、結(jié)構(gòu)或過程內(nèi)部聲明它。
Friend
聲明語句中的 Friend (Visual Basic) 關(guān)鍵字表明可以從同一程序集內(nèi)部訪問元素,而不能從程序集外部訪問。下面的代碼顯示一個(gè) Friend 聲明的示例。
Friend stringForThisProject As String僅可以在模塊、接口或命名空間級(jí)別使用 Friend。這意味著您可以在源文件級(jí)別或命名空間級(jí)別,或者在接口、模塊、類或結(jié)構(gòu)內(nèi)部聲明 friend 元素,但不能在過程內(nèi)聲明它。
Protected Friend
聲明語句中的 Protected 和 Friend 關(guān)鍵字一同出現(xiàn)時(shí),表明可從以下位置訪問元素:派生類或同一程序集內(nèi),或兩者皆可。下面的代碼顯示示例 ProtectedFriend 聲明。
Protected Friend stringForProjectAndHeirs As String僅可以在聲明類的成員時(shí)且僅在類級(jí)別使用 ProtectedFriend。這意味著可以在類中聲明 protected friend 元素,但不能在源文件級(jí)別或命名空間級(jí)別,或者在接口、模塊、結(jié)構(gòu)或過程內(nèi)聲明它。
Private
聲明語句中的 Private (Visual Basic) 關(guān)鍵字表明僅可以從同一模塊、類或結(jié)構(gòu)內(nèi)訪問元素。下面的代碼顯示一個(gè) Private 聲明的示例。
Private numberForMeOnly As Integer僅可以在模塊級(jí)別使用 Private。這意味著可以在模塊、類或結(jié)構(gòu)內(nèi)部聲明 private 元素,但不能在源文件級(jí)別或命名空間級(jí)別、接口內(nèi)部或者過程內(nèi)聲明它。
在模塊級(jí)別,不帶任何訪問級(jí)別關(guān)鍵字的 Dim 語句與 Private 聲明等效。但是,您可能希望使用 Private 關(guān)鍵字使代碼更容易閱讀和解釋。