중첩 형식

중첩 형식은 다른 형식의 멤버인 형식을 나타냅니다. 중첩 형식은 해당 선언 형식과 밀접하게 결합되어야 하고 일반 용도의 형식으로 사용하면 안 됩니다. 중첩 형식은 일부 개발자에게 혼란스러울 수 있으므로 불가피한 경우를 제외하고 공개적으로 표시하지 않아야 합니다. 잘 디자인된 라이브러리에서 개발자는 개체를 인스턴스화하거나 변수를 선언할 때 중첩 형식을 거의 사용하지 않아야 합니다.

중첩 형식은 해당 선언 형식에서 중첩 형식의 인스턴스를 만들고 사용하며 중첩 형식의 사용이 공용 멤버에게 노출되지 않는 경우에 유용합니다.

중첩 형식과 해당 외부 형식의 관계에 있어서 멤버 액세스 가능성 의미 체계가 필요한 경우 중첩 형식을 사용합니다.

중첩 형식은 선언 형식의 멤버로 처리되므로 해당 선언 형식의 다른 멤버에 액세스할 수 있습니다.

공용 중첩 형식을 논리적 그룹화 생성자로 사용하지 않습니다. 이를 위해서는 네임스페이스를 사용합니다.

공개적으로 노출된 중첩 형식을 사용하지 않습니다. 이에 대한 유일한 예외는 중첩 형식의 변수를 서브클래싱 또는 기타 고급 사용자 지정 시나리오와 같은 거의 사용되지 않는 시나리오에서 선언해야 하는 경우입니다.

형식이 선언 형식의 외부에서 참조될 가능성이 큰 경우 중첩 형식을 사용하지 않습니다.

일반 시나리오에서는 중첩 형식에 대한 변수 및 개체 인스턴스의 선언이 필요하지 않습니다. 예를 들어, 클래스에 정의된 이벤트를 처리하는 이벤트 처리기 대리자는 클래스에서 중첩될 수 없습니다.

중첩 형식이 클라이언트 코드로 인스턴스화되어야 하는 경우 중첩 형식을 사용하지 않습니다. 공용 생성자가 있는 형식은 중첩되면 안 됩니다.

원칙적으로 중첩 형식은 해당 선언 형식에 의해서만 인스턴스화되고 사용됩니다. 중첩 형식에 공용 생성자가 있으면 해당 형식이 선언 형식과 별도로 사용됨을 나타냅니다. 일반적으로 중첩 형식은 선언 형식 이외의 형식에 대한 작업을 수행해서는 안 됩니다. 광범위한 용도의 형식은 중첩되면 안 됩니다.

중첩 형식을 인터페이스의 멤버로 정의하지 않습니다. 대부분의 언어에서는 이러한 구문을 지원하지 않습니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

참고 항목

개념

형식 및 네임스페이스

기타 리소스

형식 디자인 지침

클래스 라이브러리 개발을 위한 디자인 지침