[c#] 클래스의 접근 수준

C#에서 클래스의 접근 수준은 해당 클래스가 다른 코드 요소들에게 얼마나 노출되는지를 결정합니다. 클래스의 접근 수준은 해당 클래스를 어디서 사용할 수 있는지 및 얼마나 보호되는지를 제어하는 데 중요한 역할을 합니다.

1. public 클래스

public 수식자가 붙은 클래스는 어디서든 접근할 수 있는 클래스입니다. 이 클래스는 프로젝트의 다른 부분에서 인스턴스화하거나 상속할 수 있으며 외부 어셈블리에서도 사용할 수 있습니다. 아래는 public 클래스의 예시입니다.

public class PublicClass
{
    // 클래스 멤버들
}

2. internal 클래스

internal 수식자가 붙은 클래스는 같은 어셈블리 내에서만 접근할 수 있는 클래스입니다. 다른 어셈블리에서는 사용할 수 없습니다. 이는 해당 클래스가 같은 어셈블리 내부에서만 유효하도록 하는 데 유용합니다. 아래는 internal 클래스의 예시입니다.

internal class InternalClass
{
    // 클래스 멤버들
}

3. protected 클래스

protected 수식자가 붙은 클래스는 같은 클래스나 해당 클래스를 상속하는 파생 클래스 내에서만 접근할 수 있는 클래스입니다. 이는 상속 관계에서 사용되며 외부에서 직접 인스턴스화할 수는 없습니다. 아래는 protected 클래스의 예시입니다.

protected class ProtectedClass
{
    // 클래스 멤버들
}

4. private 클래스

private 수식자가 붙은 클래스는 해당 클래스를 선언한 외부 클래스에서만 접근할 수 있는 클래스입니다. 다른 클래스나 외부에서는 사용할 수 없으며 주로 내부 구현에 사용됩니다. 아래는 private 클래스의 예시입니다.

public class OuterClass
{
    private class PrivateClass
    {
        // 클래스 멤버들
    }
}

5. protected internal 클래스

protected internal 수식자가 붙은 클래스는 같은 어셈블리 내에서 또는 해당 클래스를 상속하는 파생 클래스에서 접근할 수 있는 클래스입니다. 이는 상속 및 같은 어셈블리 내부에서의 넓은 접근 범위를 제공합니다. 아래는 protected internal 클래스의 예시입니다.

protected internal class ProtectedInternalClass
{
    // 클래스 멤버들
}

클래스의 접근 수준을 올바르게 선택하면 코드를 보다 안전하게 유지하고 재사용 가능한 컴포넌트로 만들 수 있습니다.

참고 문헌: