Optionale und benannte Parameter in C# 👍 👎

Wie viele andere Programmiersprachen (z. B. PHP) unterstützt auch C# seit einiger Zeit optionale Parameter. Die Verwendung ist denkbar einfach:
Optionale Parameter
01020304050607080910
  // Kreisfläche berechnenpublic double GetCircleArea(double radius = 1) {    return (Math.PI * (radius * radius));}

double circleArea = GetCircleArea(5); // Kreisfläche für Radius "5"
double circleArea = GetCircleArea(1); // Kreisfläche für Radius "1"double circleArea = GetCircleArea(); // Kreisfläche für Radius "1"
Der beim letzten Aufruf weggelassene Parameterwert wird dabei implizit durch die Zuweisung des Standardwertes der Definition (radius = 1) gesetzt, um den Flächeninhalt des Einheitskreises zu erhalten. Aus naheliegenden Gründen sind optionale Parameter hinter nicht-optionalen Parametern zu definieren. Ein ähnliches Verhalten lässt sich selbstverständlich auch durch das Überladen der Methode erreichen, was jedoch etwas aufwändiger ist und zumindest in unserem Beispiel nicht ganz so intuitiv erscheint:
Optionale Parameter (per Methodenüberladung)
0102030405060708
  // Kreisfläche berechnenpublic double GetCircleArea(double radius) {    return (Math.PI * (radius * radius));}
public double GetCircleArea() { return this.GetCircleArea(1);}
Der Aufruf kann nun jeweils analog zu unserem vorherigen Beispiel erfolgen.

Darüber hinaus unterstützt C# jedoch auch benannte Parameter. Damit ist es nicht notwendig, die korrekte Position eines Parameters zu verwenden; diese werden stattdessen über ihren Namen angesprochen, was insbesondere im Zusammenhang mit (mehreren) optionalen Parametern sinnvoll sein kann:
Benannte Parameter
0102030405060708091011
  // Flächeninhalt berechnenpublic double GetArea(double height = 1, double width = 1) {    return (height * width);}

double area = GetArea(); // Höhe: 1, Breite: 1double area = GetArea(2); // Höhe: 2, Breite: 1double area = GetArea(3,4); // Höhe: 3, Breite: 4
double area = GetArea(width: 5); // Höhe: 1, Breite: 5 (benannter Parameter)
Es genügt dazu also, ganz einfach den Namen des Parameters, gefolgt von einem ":" (Doppelpunkt) und dem Wert anzugeben. Zu beachten gilt, dass benannte Parameter zwar auf per Position festgelegte Parameter folgen können, der umgekehrte Fall jedoch nicht unterstützt wird.


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche