Créer une nouvelle instance à partir du type en C#

Muhammad Maisam Abbas 16 février 2024
Créer une nouvelle instance à partir du type en C#

Ce didacticiel abordera les méthodes de création d’une nouvelle instance d’un type de données donné au moment de l’exécution en C#.

Créer une nouvelle instance à partir du type avec la classe Activator en C#

Si nous voulons créer une nouvelle instance d’un type de données à l’exécution et ne connaissons pas le type de données, nous pouvons utiliser la classe Activator et la classe Type pour atteindre cet objectif. La classe Activator fournit des méthodes pour créer des instances d’objets à partir de types en C#. La méthode Activator.CreateInstance() est utilisée pour créer une instance d’un type spécifié avec le constructeur qui convient le mieux au type spécifié en C#. La classe Type représente un type de données en C#. Nous pouvons utiliser la classe Type pour déterminer le type de données inconnu dans ce scénario. L’exemple de code suivant nous montre comment créer une nouvelle instance d’un type de données à l’exécution sans connaître le type de données en utilisant la classe Activator et la classe Type en C#.

using System;

namespace new_object_from_type {
  class Program {
    static void Main(string[] args) {
      int i = 123;
      Type t = i.GetType();
      Object n = Activator.CreateInstance(t);
      n = 15;
      Console.WriteLine(n);
    }
  }
}

Production:

15

Dans le code ci-dessus, nous avons créé une instance de type int32 au runtime sans spécifier le type de données avec la méthode Activator.CreateInstance() en C#. Dans un premier temps, nous avons déterminé le type de la variable i avec la méthode i.GetType() en C#. Ensuite, nous avons créé une instance de ce type avec la méthode Activator.CreateInstance(). La méthode Activator.CreateInstance() trouve automatiquement le meilleur constructeur pour le type de données et crée une instance avec lui. Nous avons alors initialisé la nouvelle instance n avec la valeur 15 et l’avons imprimée.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn