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