Neue Instanz von Typ erzeugen in C#

Muhammad Maisam Abbas 16 Februar 2024
Neue Instanz von Typ erzeugen in C#

In diesem Lernprogramm werden die Methoden zum Erstellen einer neuen Instanz eines bestimmten Datentyps zur Laufzeit in C# erläutert.

Erstellen Sie eine neue Instanz vom Typ mit der Klasse Activator in C#

Wenn wir zur Laufzeit eine neue Instanz eines Datentyps erstellen möchten und den Datentyp nicht kennen, können wir die Klassen Activator und Type verwenden, um dieses Ziel zu erreichen. Die Klasse Activator bietet Methoden zum Erstellen von Instanzen von Objekten aus Typen in C#. Mit der Methode Activator.CreateInstance() wird eine Instanz eines angegebenen Typs mit dem Konstruktor erstellt, der am besten zum angegebenen Typ in C# passt. Die Klasse Typ repräsentiert einen Datentyp in C#. Wir können die Klasse Typ verwenden, um den unbekannten Datentyp in diesem Szenario zu bestimmen. Das folgende Codebeispiel zeigt uns, wie wir zur Laufzeit eine neue Instanz eines Datentyps erstellen können, ohne den Datentyp mithilfe der Klasse Activator und der Klasse Type in C# zu kennen.

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);
    }
  }
}

Ausgabe:

15

Im obigen Code haben wir zur Laufzeit eine Instanz vom Typ int32 erstellt, ohne den Datentyp mit der Methode Activator.CreateInstance() in C# anzugeben. Zuerst haben wir den Typ der Variablen i mit der Methode i.GetType() in C# bestimmt. Anschließend haben wir mit der Methode Activator.CreateInstance() eine Instanz dieses Typs erstellt. Die Methode Activator.CreateInstance() findet automatisch den besten Konstruktor für den Datentyp und erstellt damit eine Instanz. Wir haben dann die neue Instanz n mit dem Wert 15 initialisiert und gedruckt.

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

Verwandter Artikel - Csharp Type