Zum Hauptinhalt springen

Variadische Parameter in C# mit .NET 9: Einführung und Neuerungen

Einführung in Variadische Parameter

Variadische Parameter ermöglichen es, Methoden zu definieren, die eine beliebige Anzahl von Argumenten eines bestimmten Typs akzeptieren. In C# wird dies mit dem params-Schlüsselwort realisiert. Die übergebenen Werte werden innerhalb der Methode als Array behandelt.

Beispiel: Summe von Zahlen mit params

public class VariadischeParameter()
{
public void AddNumbers(params int[] numbers)
{
int sum = 0;
foreach (int number in numbers)
{
sum += number;
}
Console.WriteLine($"Summe: {sum}");
}
}

Aufruf der Methode:

VariadischeParameter variadischeParameter = new VariadischeParameter();
variadischeParameter.AddNumbers(1, 2, 3, 4, 5);
variadischeParameter.AddNumbers(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

Variadische Parameter mit Objekten

Auch komplexe Objekte können als variadische Parameter genutzt werden. Im folgenden Beispiel übergeben wir mehrere Person-Objekte:

public record Person(string Name, int Age);

public static void PrintPeople(params Person[] people)
{
foreach (var person in people)
{
Console.WriteLine($"Name: {person.Name}, Alter: {person.Age}");
}
}

Aufruf der Methode:

PrintPeople(
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
);

Neuerungen in .NET 9: Generische Mengentypen

Mit .NET 9 wurde die Unterstützung für generische Mengentypen bei variadischen Parametern eingeführt. Dadurch können Methoden eine variable Anzahl von Argumenten beliebigen Typs akzeptieren, ohne dass diese auf object reduziert werden müssen.

Beispiel: Generische Variadische Parameter in .NET 9

public static void PrintValues<T>(params T[] values)
{
foreach (var value in values)
{
Console.WriteLine(value);
}
}

Aufruf der Methode mit verschiedenen Typen:

PrintValues("Hallo", "Welt", "C#");
PrintValues(1, 2, 3, 4);
PrintValues(new Person("Alice", 30), new Person("Bob", 25));

Fazit

Die Neuerungen in .NET 9 machen variadische Parameter noch flexibler, da nun generische Mengentypen unterstützt werden. Dies verbessert die Typsicherheit und vereinfacht den Code, indem manuelle Umwandlungen entfallen.


Kommentare