TypeBuilder.MakeGenericType(Type[]) 메서드

정의

형식 배열의 요소를 현재 제네릭 형식 정의의 형식 매개 변수로 대체하며 생성된 결과 형식을 반환합니다.

public:
 override Type ^ MakeGenericType(... cli::array <Type ^> ^ typeArguments);
public override Type MakeGenericType (params Type[] typeArguments);
override this.MakeGenericType : Type[] -> Type
Public Overrides Function MakeGenericType (ParamArray typeArguments As Type()) As Type

매개 변수

typeArguments
Type[]

현재 제네릭 형식 정의의 형식 매개 변수로 대체할 형식 배열입니다.

반환

Type

Type의 요소를 현재 제네릭 형식의 형식 매개 변수로 대체하여 생성된 형식을 나타내는 typeArguments입니다.

예외

현재 형식이 제네릭 형식의 정의를 나타내지 않습니다. 즉, IsGenericTypeDefinitionfalse를 반환합니다.

typeArguments이(가) null인 경우

또는 typeArguments의 요소가 null입니다.

typeArguments의 요소에 대한 Module 속성이 null입니다.

또는 typeArguments의 임의 요소 모듈의 Assembly 속성이 null입니다.

설명

내보낸 코드에 현재 제네릭 형식 정의에서 생성되는 형식이 필요한 경우 이 메서드를 사용합니다. CreateType제네릭 형식 정의를 나타내는 에서 메서드를 호출하기 전에 MakeGenericType TypeBuilder 메서드를 호출할 필요는 없습니다. 현재 가 TypeBuilder 제네릭 형식의 정의를 나타내지 않으면 InvalidOperationException 이 throw됩니다.

이 메서드에서 반환된 개체는 내보낸 코드에서 구성된 제네릭 형식의 자리 표시자로 작동합니다. 제한된 기능을 가진 에서 파생된 클래스의 Type 인스턴스입니다. 특히 다음 사항에 주의하십시오.

Type^ t1 = tbldr->MakeGenericType(String::typeid);
Type^ t2 = tbldr->MakeGenericType(String::typeid);
bool result = t1->Equals(t2);
Type t1 = tbldr.MakeGenericType(typeof(string));
Type t2 = tbldr.MakeGenericType(typeof(string));
bool result = t1.Equals(t2);
Dim t1 As Type = tbldr.MakeGenericType(GetType(String))
Dim t2 As Type = tbldr.MakeGenericType(GetType(String))
Dim result As Boolean = t1.Equals(t2)

적용 대상