<T>
-Typinstanz mithilfe einer Variablen, die den Typ Das Erstellen einer Instanz eines generischen Typs mithilfe einer Variablen, die den Typ enthält, ist eine nützliche Technik in Szenarien wie der dynamischen Generierung von Typinformationen. Während der in der Frage angegebene Code, der versucht, eine List<k>
-Instanz zu erstellen (wobei k eine Variable vom Typ Type
ist), möglicherweise nicht kompiliert werden kann, gibt es andere Möglichkeiten, diese Funktionalität zu erreichen.
Eine mögliche Lösung besteht darin, die Methode MakeGenericType
für die generische Typdefinition zu verwenden. Diese Methode akzeptiert eine Reihe von Typparametern und gibt einen neuen Typ zurück, der eine Version des generischen Typs ist, der mithilfe dieser Parameter instanziiert wurde. In diesem Fall würde der Code so aussehen:
<code class="language-csharp">var genericListType = typeof(List<>); var specificListType = genericListType.MakeGenericType(typeof(double));</code>
genericListType
-Variablen enthalten Definitionen generischer List<T>
-Typen, und MakeGenericType
-Methoden geben spezialisierte List<double>
-Typen zurück.
Nachdem Sie einen bestimmten generischen Typ erstellt haben, können Sie die Klasse Activator
verwenden, um Instanzen zu erstellen. Die CreateInstance
-Methode kann verwendet werden, um basierend auf Typinformationen eine Instanz eines neuen Typs zu erstellen.
<code class="language-csharp">var list = Activator.CreateInstance(specificListType);</code>
Das obige ist der detaillierte Inhalt vonWie kann ich eine generische Typinstanz mithilfe einer Variablen erstellen, die den Typ enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!