정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Type.GetGenericArguments 메서드

2013-12-13

제네릭 형식 정의의 형식 매개 변수나 제네릭 형식의 형식 인수를 나타내는 Type 개체의 배열을 반환합니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public virtual Type[] GetGenericArguments()

반환 값

형식: System.Type []
제네릭 형식의 형식 인수를 나타내는 Type 개체의 배열입니다. 현재 형식이 제네릭 형식이 아니면 빈 배열을 반환합니다.

예외조건
NotSupportedException

호출된 메서드가 기본 클래스에서 지원되지 않는 경우 파생 클래스에서 구현을 제공해야 하는 경우

배열 요소는 제네릭 형식의 형식 인수 목록에 나타난 순서대로 반환됩니다.

  • 현재 형식이 폐쇄형 생성 형식이면, 즉 ContainsGenericParameters 속성이 false를 반환하면 GetGenericArguments 메서드에서 반환하는 배열에 제네릭 형식 정의의 제네릭 형식 매개 변수에 할당된 형식이 포함되어 있습니다.

  • 현재 형식이 제네릭 형식 정의이면 배열에 형식 매개 변수가 포함되어 있습니다.

  • 현재 형식이 형식 매개 변수와 바깥쪽 제네릭 형식 또는 메서드의 형식 매개 변수 모두에 특정 형식이 할당되어 있지는 않은 개방형 생성 형식이면, 즉 ContainsGenericParameters 속성이 true를 반환하면 해당 배열에는 형식과 형식 매개 변수가 모두 포함되어 있습니다. IsGenericParameter 속성을 사용하여 형식과 형식 매개 변수를 구분합니다. 이 시나리오에 대한 예시를 보려면 ContainsGenericParameters 속성에 대한 코드 예제를 참조하세요.

제네릭 리플렉션에 사용되는 용어에 대한 고정 조건 목록은 IsGenericType 속성 설명을 참조하세요.

다음 코드 예제에서는 GetGenericArguments 메서드를 사용하여 생성된 형식의 형식 인수와 제네릭 형식 정의의 형식 매개 변수를 표시합니다.

이 코드 예제는 IsGenericTypeDefinition 속성에 대해 제공되는 보다 큰 예제의 일부입니다. 샘플 결과에 대해서는 예제를 참조하세요.


if (t.IsGenericType)
{
   // If this is a generic type, display the type arguments.
   //
   Type[] typeArguments = t.GetGenericArguments();

   outputBlock.Text += String.Format("\tList type arguments ({0}):",
       typeArguments.Length) + "\n";

   foreach (Type tParam in typeArguments)
   {
      // If this is a type parameter, display its
      // position.
      //
      if (tParam.IsGenericParameter)
      {
         outputBlock.Text += String.Format("\t\t{0}\t(unassigned - parameter position {1})",
             tParam,
             tParam.GenericParameterPosition) + "\n";
      }
      else
      {
         outputBlock.Text += String.Format("\t\t{0}", tParam) + "\n";
      }
   }
}


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

표시: