Verwenden Sie Reflection, um generische C#-Objekte mit dynamischer Typspezifikation zu erstellen
In C# müssen Sie möglicherweise dynamisch ein generisches Objekt erstellen, z. B. eine Instanz der Task
Um dynamisch ein generisches TaskA- oder TaskB-Objekt zu erstellen, führen Sie die folgenden Schritte aus:
Zum Beispiel:
<code class="language-csharp">Type d1 = Type.GetType("namespace.TaskA`1"); Type[] typeArgs = { typeof(Item) }; var makeme = d1.MakeGenericType(typeArgs); object o = Activator.CreateInstance(makeme);</code>
Wenn eine generische Klasse mehrere Typparameter akzeptiert, achten Sie darauf, beim Weglassen des Typnamens ein Komma einzufügen, zum Beispiel:
<code class="language-csharp">Type type = typeof(IReadOnlyDictionary<,>); </code>
Hinweis: Im Codebeispiel wird davon ausgegangen, dass „namespace.TaskA1" 和
Item是已定义的类型。 实际应用中,需要根据您的具体项目替换这些占位符。 此外,错误处理(例如,处理
Type.GetType()` null zurückgibt) in einer Produktionsumgebung von entscheidender Bedeutung ist.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Reflection generische C#-Objekte mit dynamischer Typspezifikation erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!