TypeBuilder.MakeGenericType(Type[]) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
형식 배열의 요소를 현재 제네릭 형식 정의의 형식 매개 변수로 대체하며 생성된 결과 형식을 반환합니다.
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의 요소를 현재 제네릭 형식의 형식 매개 변수로 대체하여 생성된 형식을 나타내는 typeArguments
입니다.
예외
현재 형식이 제네릭 형식의 정의를 나타내지 않습니다. 즉, IsGenericTypeDefinition이 false
를 반환합니다.
설명
내보낸 코드에 현재 제네릭 형식 정의에서 생성된 형식이 필요한 경우 이 메서드를 사용합니다. 제네릭 형식 정의를 나타내는 에서 TypeBuilder 메서드를 MakeGenericType 호출하기 전에 메서드를 호출 CreateType 할 필요가 없습니다. 현재 TypeBuilder 가 제네릭 형식의 정의를 나타내지 않으면 이 InvalidOperationException throw됩니다.
이 메서드에서 반환된 개체는 내보낸 코드에서 생성된 제네릭 형식의 자리 표시자로 작동합니다. 기능이 제한된 에서 Type 파생된 클래스의 instance. 특히 다음 사항에 주의하십시오.
이러한 생성된 제네릭 형식에 대한 메서드, 필드 및 생성자를 얻으려면 , GetField(Type, FieldInfo)및 GetConstructor(Type, ConstructorInfo) 메서드 오버로드를 사용합니다GetMethod(Type, MethodInfo).
동일한 생성된 형식을 나타내는 두 인스턴스는 같지 않습니다. 예를 들어 다음 코드
t1.Equals(t2)
에서는 를 반환합니다false
.
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)
적용 대상
.NET