>백엔드 개발 >C++ >유형을 보유하는 변수를 사용하여 일반 유형 인스턴스를 어떻게 생성할 수 있습니까?

유형을 보유하는 변수를 사용하여 일반 유형 인스턴스를 어떻게 생성할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-13 06:26:42929검색

How Can I Create a Generic Type Instance Using a Variable Holding the Type?

<T> 유형이 포함된 변수를 사용하여 일반

유형 인스턴스를 만듭니다.

유형이 포함된 변수를 사용하여 일반 유형의 인스턴스를 생성하는 것은 유형 정보를 동적으로 생성하는 등의 시나리오에서 유용한 기술입니다. List<k> 인스턴스(k는 Type 유형의 변수)를 생성하려고 시도하는 질문에 제공된 코드가 컴파일되지 않을 수 있지만 이 기능을 달성하는 다른 방법이 있습니다.

한 가지 가능한 해결책은 일반 유형 정의에 MakeGenericType 메서드를 사용하는 것입니다. 이 메소드는 유형 매개변수 세트를 승인하고 이러한 매개변수를 사용하여 인스턴스화된 일반 유형 버전인 새 유형을 반환합니다. 이 경우 코드는 다음과 같습니다.

<code class="language-csharp">var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(typeof(double));</code>

genericListType 변수에는 일반 List<T> 유형의 정의가 포함되어 있으며 MakeGenericType 메소드는 특수 List<double> 유형을 반환합니다.

특정 제네릭 유형을 만든 후 Activator 클래스를 사용하여 인스턴스를 만들 수 있습니다. CreateInstance 메소드를 사용하면 타입 정보를 기반으로 새로운 타입의 인스턴스를 생성할 수 있습니다.

<code class="language-csharp">var list = Activator.CreateInstance(specificListType);</code>

위 내용은 유형을 보유하는 변수를 사용하여 일반 유형 인스턴스를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.