instancier un type générique C# en utilisant des variables comme paramètres de type
En C#, il est souvent nécessaire de créer des instances de types génériques basées sur des paramètres de type déterminés dynamiquement. Cependant, fournir les valeurs des paramètres de type directement dans le mot-clé new
n'est pas possible et entraîne l'erreur suivante :
<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
Solution
Pour surmonter cette limitation, la réflexion peut être utilisée pour construire explicitement des types génériques :
Récupérer le type d'une classe générique (par exemple, List<T>
) :
<code class="language-C#">Type genericListType = typeof(List<>);</code>
Remplacez <T>
par le type souhaité pour obtenir un type générique concret :
<code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
Utilisez la réflexion pour créer une instance d'un type générique spécifique :
<code class="language-C#">var list = Activator.CreateInstance(specificListType);</code>
Avec cette approche, vous pouvez créer des instances d'un type générique qui utilisent des paramètres de type pilotés par des variables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!