다음을 통해 공유


중첩 형식(C# 프로그래밍 가이드)

클래스구조체 내에서 선언된 형식을 중첩 형식이라고 합니다.예를 들면 다음과 같습니다.

class Container
{
    class Nested
    {
        Nested() { }
    }
}

중첩된 형식은 바깥쪽 형식이 클래스 또는 구조체 여부에 관계 없이, 기본에 개인, 되지만 만들 수 있습니다 public, 보호 된 내부, 보호, 내부, 또는 개인.이전 예제의 경우 Nested는 외부 형식에서 액세스할 수 없지만 다음과 같이 이를 공용으로 설정할 수 있습니다.

class Container
{
    public class Nested
    {
        Nested() { }
    }
}

중첩된 형식(내부 형식)에서는 이를 포함하고 있는 형식(외부 형식)에 액세스할 수 있습니다.포함 형식에 액세스하려면 포함 형식을 생성자로 중첩 형식에 전달합니다.예를 들면 다음과 같습니다.

public class Container
{
    public class Nested
    {
        private Container parent;

        public Nested()
        {
        }
        public Nested(Container parent)
        {
            this.parent = parent;
        }
    }
}

중첩 형식에서는 포함 형식의 전용 및 보호된 멤버에 액세스할 수 있으며, 여기에는 모든 상속된 전용 또는 보호된 멤버가 포함됩니다.

위 선언에서 Nested 클래스의 전체 이름은 Container.Nested입니다.이 이름은 다음과 같이 중첩된 클래스의 새 인스턴스를 만드는 데 사용됩니다.

Container.Nested nest = new Container.Nested();

참고 항목

참조

클래스 및 구조체(C# 프로그래밍 가이드)

액세스 한정자(C# 프로그래밍 가이드)

생성자(C# 프로그래밍 가이드)

개념

C# 프로그래밍 가이드