액세스 수준을 지정하여 변수의 가용성을 제어합니다. 액세스 수준은 변수를 읽거나 쓸 수 있는 권한이 있는 코드를 결정합니다.
멤버 변수 (모듈 수준 및 프로시저 외부에 정의됨)는 기본적으로 공용 액세스로 설정됩니다. 즉, 볼 수 있는 모든 코드에서 액세스할 수 있습니다. 액세스 한정자를 지정하여 변경할 수 있습니다.
프로시저 내에 정의된 지역 변수는 프로시저 내의 코드만 액세스할 수 있지만 명목상 공용 액세스 권한이 있습니다. 지역 변수의 액세스 수준을 변경할 수는 없지만 해당 변수가 포함된 프로시저의 액세스 수준을 변경할 수 있습니다.
자세한 내용은 Visual Basic의 액세스 수준을 참조하세요.
프라이빗 및 퍼블릭 액세스
모듈, 클래스 또는 구조 내에서만 변수에 액세스할 수 있도록 하려면
변수에 대한 Dim 문을 모듈, 클래스 또는 구조체 내부에 배치하지만 프로시저 외부에 배치합니다.
문에 Private 키워드를
Dim
포함합니다.모듈, 클래스 또는 구조체 내의 어디에서나 변수를 읽거나 쓸 수 있지만 외부에서는 읽을 수 없습니다.
변수를 볼 수 있는 모든 코드에서 액세스할 수 있도록 하려면
멤버 변수의 경우, 변수를 선언하는
Dim
문장은 모듈, 클래스 또는 구조체 안에 배치하되, 프로시저 내부에는 배치하지 마십시오.문에 Public 키워드를
Dim
포함합니다.어셈블리와 상호 운용되는 모든 코드에서 변수를 읽거나 쓸 수 있습니다.
-또는-
지역 변수의 경우 변수에
Dim
대한 문을 프로시저 내에 배치합니다.문장
Public
에Dim
키워드를 포함하지 마세요.프로시저 내의 어디에서나 변수를 읽거나 쓸 수 있지만 외부에서는 읽을 수 없습니다.
보호된 액세스 및 친구 액세스
변수의 액세스 수준을 해당 클래스 및 파생 클래스 또는 어셈블리로 제한할 수 있습니다. 파생 클래스의 코드 또는 동일한 어셈블리의 다른 위치에서 액세스할 수 있는 이러한 제한 사항의 합합을 지정할 수도 있습니다. 동일한 선언 안에서 키워드 Protected
와 Friend
를 결합하여 이 유니온을 지정합니다.
해당 클래스 및 파생 클래스 내에서만 변수에 액세스할 수 있도록 하려면
변수에
Dim
대한 문을 클래스 내부에 배치하지만 프로시저 외부에 배치합니다.문에 Protected 키워드를
Dim
포함합니다.클래스 내 및 파생된 모든 클래스 내에서는 변수를 읽거나 쓸 수 있지만, 파생 체인의 클래스 외부에서는 접근할 수 없습니다.
동일한 어셈블리 내에서만 변수에 액세스할 수 있도록 하려면
변수에 대한
Dim
문을 모듈, 클래스 또는 구조체 내부에 두되, 프로시저 외부에 두십시오.문에 Friend 키워드를
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 보안
변수의 액세스 수준이 더 제한적일수록 악성 코드가 변수를 부적절하게 사용할 가능성이 줄어듭니다.
참고하십시오
.NET