Maison > développement back-end > C++ > Comment puis-je créer dynamiquement des instances génériques en C# à l'aide de variables de type ?

Comment puis-je créer dynamiquement des instances génériques en C# à l'aide de variables de type ?

Susan Sarandon
Libérer: 2025-01-13 07:09:42
original
360 Les gens l'ont consulté

How Can I Dynamically Create Generic Instances in C# Using Type Variables?

Création dynamique d'instances génériques à l'aide de variables de type

En C#, les types génériques constituent un moyen pratique de définir et d'utiliser des structures de données pouvant fonctionner avec différents types de données. Cependant, dans certains cas, vous devrez peut-être créer une instance d'un type générique à l'aide d'une variable du type conteneur.

Le code suivant tente de créer une instance List en utilisant une variable k contenant un type double. Cependant, il ne parvient pas à compiler :

<code class="language-c#">Type k = typeof(double);
List<k> lst = new List<k>();</code>
Copier après la connexion

Pour résoudre ce problème, vous pouvez utiliser les méthodes suivantes :

  1. Créez une variable de type Type pour stocker le type de liste générique.
  2. Créez un type spécifique (List dans ce cas) en utilisant la méthode MakeGenericType du type liste générique.
  3. Enfin, utilisez Activator.CreateInstance pour créer une instance du type de liste spécifique.

Voici le code corrigé :

<code class="language-c#">var genericListType = typeof(List<>); // 注意<>
var specificListType = genericListType.MakeGenericType(typeof(double));
var list = Activator.CreateInstance(specificListType);</code>
Copier après la connexion

Avec cette approche, vous pouvez créer dynamiquement une instance d'un type générique à l'aide d'une variable contenant le Type . Cette flexibilité vous permet de gérer des structures de données et des scénarios complexes dans lesquels les types génériques doivent être déterminés par programme. Notez le typeof(List<>) dans <>, il indique qu'il s'agit d'un type générique, pas d'un type spécifique.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal