내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

Type.GetNestedTypes 메서드

파생 클래스에서 재정의된 경우 지정된 바인딩 제약 조건을 사용하여 현재 Type에 중첩된 형식을 검색합니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

public abstract Type[] GetNestedTypes(
	BindingFlags bindingAttr
)

매개 변수

bindingAttr
형식: System.Reflection.BindingFlags
검색 방법을 지정하는 하나 이상의 BindingFlags로 구성된 비트 마스크입니다.
- 또는 -
0(null을 반환하는 경우)

반환 값

형식: System.Type[]
지정된 바인딩 제약 조건과 일치하는 현재 Type에 중첩된 모든 형식을 나타내는 Type 개체의 배열이거나(검색은 재귀적이 아님), 바인딩 제약 조건과 일치하는 중첩 형식이 없으면 Type 형식의 빈 배열입니다.

중첩 형식의 검색은 재귀적이 아닙니다.

GetNestedTypes 메서드는 사전순 또는 선언순 등의 특정 순서로 형식을 반환하지 않습니다. 형식이 반환되는 순서는 달라질 수 있으므로 코드가 이 순서의 영향을 받지 않아야 합니다.

다음과 같은 BindingFlags 필터 플래그를 사용하여 검색에 포함할 중첩 형식을 정의할 수 있습니다.

  • 반환 값을 가져오려면 BindingFlags.Public 또는 BindingFlags.NonPublic을 지정해야 합니다.

  • 검색에 public 중첩 형식을 포함하려면 BindingFlags.Public을 지정합니다.

  • 검색에 public이 아닌 중첩 형식, 즉 private 중첩 형식 및 protected 중첩 형식 포함하려면 BindingFlags.NonPublic을 지정합니다.

이 메서드는 현재 형식의 중첩 형식만 반환합니다. 현재 형식의 기본 클래스는 검색하지 않습니다. 기본 클래스에 중첩된 형식을 찾으려면 각 수준에서 GetNestedTypes을 호출하여 상속 계층 구조를 검색해야 합니다.

BindingFlags.Instance BindingFlags.Static은 무시됩니다.

이 메서드를 호출할 때 BindingFlags.Public 플래그나 BindingFlags.NonPublic 플래그만 사용해도 지정된 중첩 형식이 반환되므로 다른 플래그는 사용할 필요가 없습니다.

자세한 내용은 System.Reflection.BindingFlags을 참조하십시오.

현재 Type이 제네릭 형식 또는 제네릭 메서드 정의의 형식 매개 변수를 나타내는 경우 이 메서드는 클래스 제약 조건의 중첩 형식을 검색합니다.

중첩 형식이 제네릭이면 이 메서드는 제네릭 형식 정의를 반환합니다. 바깥쪽 제네릭 형식이 폐쇄형 생성 형식인 경우에도 마찬가지입니다.

참고참고:

현재 Type이 C#, Visual Basic 또는 C++에 정의된 제네릭 형식을 나타내는 경우 중첩 형식은 고유한 제네릭 매개 변수가 없더라도 모두 제네릭입니다. 동적 어셈블리에 정의되었거나 MSIL(Microsoft Intermediate Language) 어셈블러로 컴파일된 중첩 형식의 경우에는 제네릭이 아닐 수도 있습니다.

중첩 제네릭 형식과 제네릭 형식 정의에서 중첩 제네릭 형식을 생성하는 방법에 대한 자세한 내용은 MakeGenericType을 참조하십시오.

플랫폼 참고 사항

Windows Phone용 Silverlight Windows Phone용 Silverlight
 GetNestedTypesBindingFlags 값에 관계없이 모든 중첩 형식을 반환합니다.

다음 예제에서는 중첩 public 클래스 두 개와 중첩 protected 클래스 두 개를 만들고 지정된 바인딩 제약 조건과 일치하는 클래스 정보를 표시합니다.

참고참고:

이 예제를 실행하려면 Demo 메서드 및 TextBlock 컨트롤을 사용하는 예제 빌드를 참조하십시오.



using System;
using System.Reflection;
using System.Reflection.Emit;

// Create a class with two nested public classes and two nested protected classes.
public class MyTypeClass
{
   public class Myclass1
   {
   }
   public class Myclass2
   {
   }
   protected class MyClass3
   {
   }
   protected class MyClass4
   {
   }
}

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Type myType = (typeof(MyTypeClass));
      // Get the public nested classes.
      Type[] myTypeArray = myType.GetNestedTypes(BindingFlags.Public | BindingFlags.Instance);
      outputBlock.Text += String.Format("The number of nested public classes is {0}.", myTypeArray.Length) + "\n";
      // Display all the public nested classes.
      DisplayTypeInfo(outputBlock, myTypeArray);
      // Get the nonpublic nested classes.
      Type[] myTypeArray1 = myType.GetNestedTypes(BindingFlags.NonPublic | BindingFlags.Instance);
      outputBlock.Text += String.Format("The number of nested protected classes is {0}.", myTypeArray1.Length) + "\n";
      // Display all the nonpublic nested classes.
      DisplayTypeInfo(outputBlock, myTypeArray1);
   }
   public static void DisplayTypeInfo(System.Windows.Controls.TextBlock outputBlock, Type[] myArrayType)
   {
      // Display the information for all the nested classes.
      for (int i = 0; i < myArrayType.Length; i++)
      {
         Type myType = (Type)myArrayType[i];
         outputBlock.Text += String.Format("The name of the nested class is {0}.", myType.ToString()) + "\n";
      }
   }


Silverlight

5, 4, 3에서 지원

Windows Phone용 Silverlight

Windows Phone OS 7.1, Windows Phone OS 7.0에서 지원

XNA Framework

Xbox 360, Windows Phone OS 7.0에서 지원

Silverlight에서 지원되는 운영 체제 및 브라우저에 대한 자세한 내용은 지원되는 운영 체제 및 브라우저을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft