리플렉션을 사용하여 C#에서 일반 객체를 동적으로 생성
C#에서는 유형 문자열을 기반으로 객체를 동적으로 생성해야 하는 상황에 자주 직면합니다. 이 접근 방식은 리플렉션을 사용하여 명시적인 유형 선언을 방지합니다.
다음 클래스 구조를 고려하세요.
<code class="language-csharp">public class Item { } public class Task<T> { } public class TaskA<T> : Task<T> { } public class TaskB<T> : Task<T> { }</code>
우리의 목표는 리플렉션을 사용하여 TaskA 또는 TaskB의 인스턴스를 동적으로 생성하는 것입니다. 유형을 미리 알 수 없으므로 "namespace.TaskA" 또는 "namespace.TaskAB"와 같은 유형 문자열을 사용합니다.
리플렉션을 사용하면 다음과 같이 달성할 수 있습니다.
<code class="language-csharp">var type = Type.GetType("namespace.TaskA`1"); // 将“namespace”替换为您实际的命名空间 Type[] typeArgs = { typeof(Item) }; var makeme = type.MakeGenericType(typeArgs); object instance = Activator.CreateInstance(makeme);</code>
이 메소드는 지정된 유형 문자열을 기반으로 TaskA
<code class="language-csharp">Type type = typeof(IReadOnlyDictionary);</code>
위 내용은 리플렉션을 사용하여 C#에서 일반 개체를 동적으로 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!