차례:
정의-중첩 유형이란 무엇입니까?
C #에서 중첩 형식은 기존 클래스 또는 구조체 내에 선언 된 형식입니다. 컴파일 단위 또는 네임 스페이스 내에서 직접 선언 된 중첩되지 않은 형식과 달리 중첩 형식은 포함 (또는 외부) 형식의 범위 내에서 정의됩니다.
중첩 유형은 범위, 가시성 및 수명이 다른 유형에 노출되지 않고 포함 유형 내에서 끝나는 경우에만 사용됩니다. 컬렉션 형식 내의 열거 자 멤버는 일반적으로 컬렉션을 반복하기 위해 중첩 형식으로 구현됩니다. 반복자로서 열거자는 데이터 콜렉션의 기본 구조에 관계없이 동일한 클라이언트 측 로직을 사용하여 콜렉션을 반복 할 수 있습니다.
일반적으로 중첩 형식은 논리적으로 포함 형식에 속하는 상황에서만 사용됩니다. 포함 유형이 포함 유형의 구현 세부 사항을 캡슐화하는 데 도움이되는 중첩 유형에 전적으로 종속되는 경우 구현됩니다. 중첩 유형을 구현할 필요없이 구현에 중첩 유형이있는 포함 유형을 직접 사용하는 시나리오에서 종종 사용됩니다.
Techopedia는 중첩 유형을 설명합니다
중첩 된 유형은 공개 레벨의 액세스 가능성으로 선언하고 완전한 이름을 사용하여 프로그램 내 어디에서나 액세스 할 수 있습니다.
예를 들어 AddressInformation은 Employee 유형 내에 선언 된 중첩 유형일 수 있으며 정규화 된 이름 Employee.AddressInformation을 사용하여 액세스 할 수 있습니다.
중첩 유형에는 다음과 같은 주요 속성이 있습니다.
- 개인, 공개, 보호, 보호 내부 및 내부를 포함하여 다양한 형태의 접근성을 가질 수 있습니다. 기본적으로 개인 액세스 기능이 있습니다.
- 상속 된 개인 및 보호 된 구성원을 포함하여 포함 유형의 개인 및 보호 된 구성원에 액세스 할 수 있습니다. 이러한 멤버에 액세스하려면 포함 형식의 인스턴스가 생성자를 통해 중첩 형식으로 전달되어야합니다.
- 여러 중첩 수준을 허용하므로 한 중첩 클래스의 코드 블록을 다른 중첩 클래스 내에 정의 할 수 있습니다.
- 포함하는 유형에서 상속 될 수 있으며 상속 될 수도 있습니다.
- 중첩 형식의 개인 멤버는 포함 형식에 보이지 않습니다.
클라이언트 코드가 인스턴스화하기 위해 공개적으로 노출해야하거나 클라이언트 코드에서 직접 참조되는 경우 중첩 형식을 사용해서는 안됩니다. 논리 그룹화 구문에는 네임 스페이스 대신 사용할 수 없습니다.