액세스 가능성 수준(C# 참조)
업데이트: 2007년 11월
액세스 한정자(public, protected, internal 또는 private)를 사용하여 다음의 선언된 액세스 가능성 중 하나를 멤버에 지정할 수 있습니다.
선언된 액세스 가능성 |
의미 |
---|---|
public |
액세스가 제한되지 않습니다. |
protected |
포함하는 클래스 또는 여기에서 파생된 형식으로 액세스가 제한됩니다. |
internal |
액세스가 현재 어셈블리로 제한됩니다. |
protectedinternal |
현재 어셈블리 또는 포함하는 클래스에서 파생된 형식으로 액세스가 제한됩니다. |
private |
액세스가 포함하는 형식으로 제한됩니다. |
protectedinternal 조합을 사용할 때를 제외하고는 멤버 또는 형식 하나에 액세스 한정자를 한 개만 지정할 수 있습니다.
네임스페이스에는 액세스 한정자를 사용할 수 없습니다. 따라서 네임스페이스에는 액세스 제한이 없습니다.
멤버 선언이 발생하는 컨텍스트에 따라 특정한 선언된 액세스 가능성만 허용됩니다. 멤버 선언에 액세스 한정자를 지정하지 않은 경우에는 기본 액세스 가능성이 사용됩니다.
다른 형식에 중첩되지 않은 최상위 형식에는 internal 또는 public 액세스 가능성만 지정할 수 있습니다. 이 형식에 대한 기본 액세스 가능성은 internal입니다.
다른 형식의 멤버인 중첩 형식에는 다음 표에 표시된 것과 같은 선언된 액세스 가능성을 지정할 수 있습니다.
다음 형식의 멤버 |
기본 멤버 액세스 가능성 |
멤버에 대해 허용되는 선언된 액세스 가능성 |
---|---|---|
enum |
public |
없음 |
class |
private |
public protected internal private protectedinternal |
interface |
public |
없음 |
struct |
private |
public internal private |
중첩 형식의 액세스 가능성은 액세스 가능 도메인에 따라 달라지는데, 이 액세스 가능 도메인은 멤버의 선언된 액세스 가능성 및 직접 포함하는 형식의 액세스 가능 도메인에 의해 결정됩니다. 그러나 중첩 형식의 액세스 가능 도메인은 포함하는 형식의 액세스 가능 도메인을 벗어날 수는 없습니다.
C# 언어 사양
자세한 내용은 C# 언어 사양의 다음 단원을 참조하십시오.
3.5.1 선언된 액세스 가능성
3.5.3 인스턴스 멤버에 대한 Protected 액세스
3.5.4 액세스 가능성 제약 조건
10.3.5 액세스 한정자
10.3.8.2 선언된 액세스 가능성