액세스 가능성 수준(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# 구문 및 사용법에 대 한 신뢰할 수 있는 소스 됩니다.

참고 항목