Optionale Parameter in .NET 2.0 bis .NET 4.0 (Teil 3)
Kommentare

Die Methode UsingOptionalParameters definiert drei Parameter. Der erste Parameter muss zwingend beim Aufruf der Methode übergeben werden, die letzten beiden Parameter sind optional. Da optionale Parameter

Die Methode UsingOptionalParameters definiert drei Parameter. Der erste Parameter muss zwingend beim Aufruf der Methode übergeben werden, die letzten beiden Parameter sind optional. Da optionale Parameter beim Aufruf ausgelassen werden können, muss ein konstanter Standardwert vorgegeben werden. Im Beispiel besitzt der Parameter param2 den Standardwert 2 und param3 das Literal „Empty“. Generell müssen optionale Parameter am Ende der Parametersignatur definiert werden. Das Hauptprogramm demonstriert die verschiedenen Aufrufmöglichkeiten der Methode. Der erste Aufruf spezifiziert lediglich den ersten Parameter und lässt die optionalen Parameter aus. Im zweiten Aufruf werden alle Parameter mit Werten besetzt. Im vierten Aufruf wird dann die Möglichkeit verwendet, den Namen des zu setzenden Parameters anzugeben.

Benannte Parameter verbessern die Lesbarkeit

In Listing 5 zeigt der vierte Aufruf die Möglichkeit, den Namen des zu setzenden Parameters anzugeben. Dies ist u. a. sehr hilfreich, wenn die Methode sehr viele optionale Parameter besitzt, aber für den konkreten Aufruf nur einige Argumente übergeben werden müssen. Da das Auslassen von Parameterangaben mittels Komma, wie es der fünfte Aufruf zeigt, nicht möglich ist, ermöglichen es benannte Parameter, gezielt bestimmte Parameterwerte festzulegen. Ebenfalls wird durch die namentliche Angabe des Parameters die Lesbarkeit des Quellcodes verbessert. Gerade bei gedrucktem Quellcode kann es schwierig werden, nur allein durch die Position Rückschlüsse auf die Bedeutung eines Parameters zu erhalten.

Vereinfachte Nutzung von COM-Schnittstellen

Die Steuerung von Office-Anwendungen wie Microsoft Word oder Excel ist unter .NET schon immer möglich gewesen. Da die COM-basierten Office-Schnittstellen jedoch in der Regel eine Vielzahl an Parametern erwarten, war die Nutzung bisher schwierig und unübersichtlich. Listing 6 zeigt, wie die COM-basierte Office API unter .NET 2.0 anzusprechen ist. Parameterwerte, die bei einem Aufruf nicht benötigt werden, müssen auf Type.Missing gesetzt werden und können nicht ausgelassen werden. Dies führt zu einem unübersichtlichen und nicht lesbaren Quellcode.

public static void WordAutomation1()
{
  Application wordApplication = new Application() { Visible = true };
  object readOnlyValue = true;
  object fileName = @"Document.docx";
  Document doc = wordApplication.Documents.Open(ref fileName,
    Type.Missing, ref readOnlyValue, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing,
    Type.Missing, Type.Missing);
  wordApplication.Quit(WdSaveOptions.wdDoNotSaveChanges, 
                           Type.Missing, Type.Missing);
}  

Durch die Einführung von dynamischen Spracherweiterungen und optionalen und benannten Parametern wird die Nutzung COM-basierter Schnittstellen erheblich vereinfacht. Listing 7 zeigt den aus Listing 6 umgesetzten Aufruf unter .NET 4.0. Wie erkennbar ist, können nicht benötigte Parameterwerte beim Methodenaufruf einfach ausgelassen werden. Der Quellcode wird somit reduziert und lesbarer.

public static void WordAutomation2()
{
  Application wordApplication = new Application() { Visible = true };
  object readOnlyValue = true;
  object fileName = @"Document.docx";
  Document doc = wordApplication.Documents.Open(fileName, ReadOnly: true);
  wordApplication.Quit(WdSaveOptions.wdDoNotSaveChanges);
}  

Die Verwendung von optionalen Parametern kann den Quellcode reduzieren, dadurch wird dieser übersichtlicher. Teilweise kann auf ansonsten notwendige (Methoden-)Überladungen verzichtet werden. Durch die Möglichkeit, benannte Parameter zu verwenden, werden die Lesbarkeit und Verständlichkeit der entstehenden Implementierung verbessert.

Marc André Zhou arbeitet als Senior Consultant bei der Logica Deutschland GmbH & Co. KG. Seine Schwerpunkte liegen im Bereich SharePoint, Softwarearchitekturen und Frameworks, hier hauptsächlich im .NET-Umfeld. Sie erreichen ihn unter marc.andre.zhou@logica.com.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -