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.
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