선언된 요소의 액세스 수준은 액세스하는 기능의 범위, 즉 코드에서 읽거나 쓸 수 있는 권한이 있는 수준입니다. 이는 요소 자체를 선언하는 방법뿐만 아니라 요소 컨테이너의 액세스 수준에 따라 결정됩니다. 포함하는 요소에 액세스할 수 없는 코드는 포함된 요소 중 하나로 선언된 Public
요소에도 액세스할 수 없습니다. 예를 들어 구조체의 Public
변수는 Private
구조체를 포함하는 클래스 내부에서 액세스할 수 있지만 해당 클래스 외부에서는 액세스할 수 없습니다.
공개
선언문의 Public 키워드는 동일한 프로젝트의 모든 코드, 프로젝트를 참조하는 다른 프로젝트 및 프로젝트에서 빌드된 어셈블리에서 요소에 액세스할 수 있음을 지정합니다. 다음 코드는 샘플 Public
선언을 보여줍니다.
Public Class ClassForEverybody
모듈, 인터페이스 또는 네임스페이스 수준에서만 사용할 Public
수 있습니다. 즉, 소스 파일 또는 네임스페이스 수준에서 또는 인터페이스, 모듈, 클래스 또는 구조 내에서 public 요소를 선언할 수 있지만 프로시저에서는 선언할 수 없습니다.
보호됨
선언문의 Protected 키워드는 동일한 클래스 내에서만 또는 이 클래스에서 파생된 클래스에서만 요소에 액세스할 수 있도록 지정합니다. 다음 코드는 샘플 Protected
선언을 보여줍니다.
Protected Class ClassForMyHeirs
클래스 수준에서만 사용할 수 있으며 클래스의 멤버를 선언하는 경우에만 사용할 Protected
수 있습니다. 즉, 소스 파일 또는 네임스페이스 수준이나 인터페이스, 모듈, 구조체 또는 프로시저 내에서는 클래스에서 보호된 요소를 선언할 수 없습니다.
친구
선언문의 Friend 키워드는 해당 요소가 동일한 어셈블리 내부에서는 접근할 수 있지만 외부에서는 접근할 수 없음을 지정합니다. 다음 코드는 샘플 Friend
선언을 보여줍니다.
Friend stringForThisProject As String
모듈, 인터페이스 또는 네임스페이스 수준에서만 사용할 Friend
수 있습니다. 즉, 소스 파일 또는 네임스페이스 수준에서 또는 인터페이스, 모듈, 클래스 또는 구조 내에서 friend 요소를 선언할 수 있지만 프로시저에서는 선언할 수 없습니다.
보호된 친구
선언문의 Protected Friend 키워드 조합은 파생 클래스 또는 동일한 어셈블리 내에서 또는 둘 다에서 요소에 액세스할 수 있음을 지정합니다. 다음 코드는 샘플 Protected Friend
선언을 보여줍니다.
Protected Friend stringForProjectAndHeirs As String
클래스 수준에서만 사용할 수 있으며 클래스의 멤버를 선언하는 경우에만 사용할 Protected Friend
수 있습니다. 즉, 클래스에서 보호된 friend 요소를 선언할 수 있지만 소스 파일 또는 네임스페이스 수준이나 인터페이스, 모듈, 구조 또는 프로시저 내에서 선언할 수는 없습니다.
비공개
선언문의 Private 키워드는 동일한 모듈, 클래스 또는 구조 내에서만 요소에 액세스할 수 있도록 지정합니다. 다음 코드는 샘플 Private
선언을 보여줍니다.
Private _numberForMeOnly As Integer
모듈 수준에서만 사용할 Private
수 있습니다. 즉, 모듈, 클래스 또는 구조 내에서 프라이빗 요소를 선언할 수 있지만 소스 파일 또는 네임스페이스 수준, 인터페이스 내부 또는 프로시저에서는 선언할 수 없습니다.
모듈 수준에서, Dim
에 액세스 수준 키워드가 없는 문은 Private
선언과 동일합니다. 그러나 코드를 더 쉽게 읽고 해석할 수 있도록 키워드를 사용할 Private
수 있습니다.
프라이빗 보호됨
선언문의 Private Protected 키워드 조합은 포함하는 클래스와 동일한 어셈블리에 있는 파생 클래스뿐만 아니라 동일한 클래스 내에서만 요소에 액세스할 수 있도록 지정합니다.
Private Protected
액세스 한정자는 Visual Basic 15.5부터 지원됩니다.
다음 예제에서는 선언을 보여줍니다.Private Protected
Private Protected internalValue As Integer
클래스 내에서만 요소를 선언 Private Protected
할 수 있습니다. 인터페이스 또는 구조 내에서 선언할 수 없으며 소스 파일 또는 네임스페이스 수준, 인터페이스 또는 구조 내부 또는 프로시저에서 선언할 수도 없습니다.
Private Protected
액세스 한정자는 Visual Basic 15.5 이상에서 지원됩니다. 이를 사용하려면 Visual Basic 프로젝트(*.vbproj) 파일에 다음 요소를 추가합니다. Visual Basic 15.5 이상이 시스템에 설치되어 있는 한 최신 버전의 Visual Basic 컴파일러에서 지원하는 모든 언어 기능을 활용할 수 있습니다.
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
액세스 한정자를 사용 Private Protected
하려면 Visual Basic 프로젝트(*.vbproj) 파일에 다음 요소를 추가해야 합니다.
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
자세한 내용은 Visual Basic 언어 버전 설정을 참조하세요.
액세스 한정자
액세스 수준을 지정하는 키워드를 액세스 한정자라고 합니다. 다음 표에서는 액세스 한정자를 비교합니다.
액세스 한정자 | 액세스 수준 부여됨 | 이 액세스 수준으로 선언할 수 있는 요소 | 이 한정자를 사용할 수 있는 선언 컨텍스트 |
---|---|---|---|
Public |
무제한: 공용 요소를 볼 수 있는 모든 코드는 해당 요소에 액세스할 수 있습니다. |
인터페이스 모듈 수업 구조 구조체 멤버 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
원본 파일 네임스페이스 인터페이스 모듈 클래스 구조 |
Protected |
파생: 보호된 요소 또는 해당 요소에서 파생된 클래스를 선언하는 클래스의 코드는 요소에 액세스할 수 있습니다. |
인터페이스 수업 구조 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
클래스 |
Friend |
집회: friend 요소를 선언하는 어셈블리의 코드가 액세스할 수 있습니다. |
인터페이스 모듈 수업 구조 구조체 멤버 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
원본 파일 네임스페이스 인터페이스 모듈 클래스 구조 |
Protected
Friend
|
Protected 와 Friend 의 통합보호된 friend 요소와 동일한 클래스 또는 동일한 어셈블리의 코드 또는 요소의 클래스에서 파생된 클래스 내에서 해당 클래스에 액세스할 수 있습니다. |
인터페이스 수업 구조 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
클래스 |
Private |
선언 컨텍스트: 포함된 형식 내의 코드를 포함하여 private 요소를 선언하는 형식의 코드는 요소에 액세스할 수 있습니다. |
인터페이스 수업 구조 구조체 멤버 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
모듈 클래스 구조 |
Private Protected |
프라이빗 보호된 요소를 선언하는 클래스의 코드 또는 bas 클래스와 동일한 어셈블리에 있는 파생 클래스의 코드입니다. | 인터페이스 수업 구조 절차 속성 멤버 변수 상수 열거 목록 이벤트 외부 선언 대표자 |
클래스 |
참고하십시오
.NET