액세스 가능성 수준(C# 참조)
액세스 한정자 public
, protected
, internal
또는 private
을 사용하여 멤버에 대해 다음과 같이 선언된 접근성 수준 중 하나를 지정합니다.
선언된 액세스 가능성 | 의미 |
---|---|
public |
액세스가 제한되지 않습니다. |
protected |
액세스가 포함하는 클래스 또는 포함하는 클래스에서 파생된 형식으로 제한됩니다. |
internal |
액세스가 현재 어셈블리로 제한됩니다. |
protected internal |
액세스가 현재 어셈블리 또는 포함하는 클래스에서 파생된 형식으로 제한됩니다. |
private |
액세스가 포함하는 형식으로 제한됩니다. |
private protected |
액세스가 포함하는 클래스 또는 현재 어셈블리 내의 포함하는 클래스에서 파생된 형식으로 제한됩니다. |
protected internal
또는 private protected
조합을 사용할 경우를 제외하고 멤버 또는 형식에는 액세스 한정자가 하나만 허용됩니다.
네임스페이스에는 액세스 한정자가 허용되지 않습니다. 네임스페이스에는 액세스 제한이 없습니다.
멤버 선언이 발생한 컨텍스트에 따라 특정 선언된 액세스 가능성만 허용됩니다. 액세스 한정자가 멤버 선언에서 지정되지 않으면 기본 액세스 가능성이 사용됩니다.
다른 형식에 중첩되지 않은 최상위 형식에는 internal
또는 public
액세스 가능성만 포함될 수 있습니다. 이러한 형식에 대한 기본 액세스 가능성은 internal
입니다.
다음 표에 나와 있는 대로 다른 형식의 멤버인 중첩 형식에는 선언된 액세스 가능성이 포함될 수 있습니다.
소속 그룹 | 기본 멤버 액세스 가능성 | 멤버의 허용된 선언된 액세스 가능성 |
---|---|---|
enum |
public |
없음 |
class |
private |
public protected internal private protected internal private protected |
interface |
public |
public protected internal private *protected internal private protected |
struct |
private |
public internal private |
* private
액세스 가능성이 있는 interface
멤버에는 기본 구현이 있어야 합니다.
참고 항목
클래스 또는 구조체가 record
키워드 한정자로 수정되면 동일한 액세스 한정자가 허용됩니다.
또한 record
한정자를 사용하면 클래스와 구조체 모두에 대해 기본 멤버 접근성이 여전히 private
입니다.
중첩된 형식의 액세스 가능성은 액세스 가능 도메인에 따라 다릅니다. 액세스 가능성 도메인은 멤버에 대해 선언된 액세스 가능성 및 한 수준 위 형식의 액세스 가능성 도메인에 의해 결정됩니다. 그러나 중첩 형식의 액세스 가능 도메인은 포함하는 형식의 액세스 가능 도메인을 벗어날 수는 없습니다.
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하세요. 언어 사양은 C# 구문 및 사용법에 대 한 신뢰할 수 있는 소스 됩니다.
참고 항목
.NET