Verwendung benannter und optionaler Parameter in C #

Microsoft hat die Unterstützung für benannte und optionale Parameter in C # 4.0 eingeführt. Während ein benannter Parameter verwendet wird, um ein Argument basierend auf dem Namen des Arguments und nicht der Position anzugeben, kann ein optionaler Parameter verwendet werden, um einen oder mehrere Parameter in der Methodensignatur wegzulassen. Die Parameter einer Methode können entweder erforderlich oder optional sein, je nachdem, ob Sie beim Aufrufen der Methode einen Wert an diese Parameter übergeben müssen oder nicht.

Es ist zu beachten, dass benannte und optionale Parameter nicht nur mit Methoden, sondern auch mit Indexern und Delegaten verwendet werden können. Dieser Artikel beschreibt diese beiden leistungsstarken Funktionen der Programmiersprache C # und wie wir damit arbeiten können.

Um mit den in diesem Artikel bereitgestellten Codebeispielen arbeiten zu können, muss Visual Studio 2019 auf Ihrem System installiert sein. Wenn Sie noch keine Kopie haben, können Sie Visual Studio 2019 hier herunterladen.

Erstellen Sie ein Konsolenanwendungsprojekt in Visual Studio

Zunächst erstellen wir ein .NET Core-Konsolenanwendungsprojekt in Visual Studio. Angenommen, Visual Studio 2019 ist auf Ihrem System installiert, führen Sie die folgenden Schritte aus, um ein neues .NET Core-Konsolenanwendungsprojekt in Visual Studio zu erstellen.

  1. Starten Sie die Visual Studio-IDE.
  2. Klicken Sie auf "Neues Projekt erstellen".
  3. Wählen Sie im Fenster "Neues Projekt erstellen" aus der Liste der angezeigten Vorlagen "Konsolen-App (.NET Core)" aus.
  4. Weiter klicken.
  5. Geben Sie im nächsten Fenster "Konfigurieren Sie Ihr neues Projekt" den Namen und den Speicherort für das neue Projekt an.
  6. Klicken Sie auf Erstellen.

Dadurch wird ein neues .NET Core-Konsolenanwendungsprojekt in Visual Studio 2019 erstellt. In den folgenden Abschnitten dieses Artikels wird dieses Projekt verwendet, um mit benannten und optionalen Parametern zu arbeiten.

Verwenden Sie benannte Parameter in C #

Wenn Sie eine Methode, einen Konstruktor, einen Indexer oder einen Delegaten aufrufen, müssen Sie Argumente für die erforderlichen Parameter übergeben. Sie können jedoch Argumente für die Parameter weglassen, die als optionale Parameter definiert wurden.

Möglicherweise müssen Sie häufig eine Methode aufrufen, die viele Parameter enthält. Und selbst wenn Sie eine solche Methode nur mit den erforderlichen Parametern aufrufen, ist es manchmal äußerst schwierig zu verstehen, welches Argument welchem ​​Parameter zugeordnet ist. Hier kommen benannte Argumente zur Rettung.

Benannte Argumente in der Programmiersprache C # werden verwendet, um den Argumentnamen einer Methode mit ihrem Wert zu verknüpfen, dh dem Wert, der beim Aufrufen der Methode als Argument übergeben wird. Es ist zu beachten, dass bei Verwendung eines benannten Arguments die Argumente in derselben Reihenfolge ausgewertet werden, in der sie übergeben wurden.

Schauen wir uns ein Beispiel an. Schreiben Sie die folgende Methode mit dem Namen Hinzufügen in die Programmklasse Ihres neuen Konsolenanwendungsprojekts.

public static int Add (int x, int y, int z, int a, int b, int c)

{

   return x + y + z + a + b + c;

}}

Angenommen, Sie rufen die Add-Methode auf, wie im folgenden Codeausschnitt gezeigt.

statische Leere Main (string [] args)

{

    Addiere (5, 10);

}}

Der obige Code funktioniert nicht, da die Signatur der Add-Methode sechs erforderliche Parameter enthält (keine sind optionale Parameter), Sie jedoch nur zwei Argumente übergeben haben. Der folgende Fehler wird angezeigt.

Daher sind Sie gezwungen, Werte an jeden der Parameter zu übergeben, um den Aufruf zu erfüllen, wie im unten angegebenen Codeausschnitt gezeigt.

statische Leere Main (string [] args)

{

   Addiere (5, 10, 8, 2, 3, 6);

}}

Die Dinge werden kompliziert, wenn Sie eine Mischung von Datentypen in den Parametern einer Methode haben. Um dies zu veranschaulichen, ändern wir unsere Add-Methode wie im folgenden Codeausschnitt gezeigt.

public static int Add (int x, int y, int z, doppelt a, doppelt b, doppelt c)

{

    return x + y + z + Convert.ToInt32 (a) + Convert.ToInt32 (b) + Convert.ToInt32 (c);

}}

Das Speichern der Datentypen der Parameter sowie ihrer Position ist umständlich. Die Lösung hierfür besteht darin, benannte Argumente zu nutzen und Werte an die Methode zu übergeben, wie im unten angegebenen Codeausschnitt gezeigt.

statische Leere Main (string [] args)

{

    Addiere (x: 5, y: 10, z: 8, a: 2,0, b: 3,0, c: 6,0);

}}

Sie können sogar die Reihenfolge der benannten Argumente ändern, wie im folgenden Code-Snippet gezeigt.

statische Leere Main (string [] args)

{

    Addiere (z: 8, x: 5, y: 10, c: 6, a: 2,0, b: 3,0);

}}

Solange Sie die Argumente benennen, können Sie sie in beliebiger Reihenfolge übergeben, und der Compiler meldet keinen Fehler - dh dies ist in C # vollkommen gültig.

Verwenden Sie optionale Parameter in C #

Mit optionalen Parametern in der Programmiersprache C # können Sie Argumente in einer Methodensignatur angeben, die der Aufrufer der Methode frei weglassen kann. Mit anderen Worten, während Sie Werte für erforderliche Parameter angeben müssen, können Sie festlegen, dass keine Werte für optionale Parameter angegeben werden. In einigen Fällen kann einem optionalen Parameter auch ein Standardwert zugeordnet sein.

Der Standardwert eines optionalen Parameters kann drei Arten von Werten haben: einen konstanten Ausdruck, einen Ausdruck in Form eines Werttyps oder einen Ausdruck in Form von Standard (v), wobei v ein Wert ist Art.

Die im folgenden Codeausschnitt gezeigte Add-Methode veranschaulicht, wie Sie optionale Argumente für eine Methode in C # angeben können.

public static int Add (int x, int y = 0, int z = 0)

{

    return x + y + z;

}}

Und so können Sie die Add-Methode aufrufen.

Addiere (10);

Da zwei der Parameter in der Add-Methode optional sind, können Sie beim Aufrufen der Methode einen einzelnen ganzzahligen Wert übergeben. Achten Sie darauf, dass Sie die richtige Reihenfolge für die Definition der Parameter in einer Methode einhalten. Die erforderlichen Parameter sollten an erster Stelle stehen, gefolgt von optionalen Parametern, falls vorhanden.

In die Programmiersprache C # wurden benannte und optionale Parameter eingeführt, um die Interoperabilität mit COM-APIs zu verbessern. Die Verwendung benannter Parameter kann die Lesbarkeit des Quellcodes verbessern. Und Sie können optionale Parameter als Ersatz für die Verwendung überladener Methoden nutzen, wenn die Methodendefinition identisch ist.

So machen Sie mehr in C #:

  • Verwendung fließender Schnittstellen und Methodenverkettung in C #
  • So testen Sie statische Methoden in C #
  • Wie man Gottobjekte in C # umgestaltet
  • Verwendung von ValueTask in C #
  • Verwendung der Unveränderlichkeit in C.
  • Verwendung von const, readonly und static in C #
  • Verwendung von Datenanmerkungen in C #
  • So arbeiten Sie mit GUIDs in C # 8
  • Wann wird eine abstrakte Klasse im Vergleich zur Schnittstelle in C # verwendet?
  • So arbeiten Sie mit AutoMapper in C #
  • Verwendung von Lambda-Ausdrücken in C #
  • So arbeiten Sie mit Action-, Func- und Predicate-Delegaten in C #
  • So arbeiten Sie mit Delegierten in C #
  • So implementieren Sie einen einfachen Logger in C #
  • So arbeiten Sie mit Attributen in C #
  • So arbeiten Sie mit log4net in C #
  • So implementieren Sie das Repository-Entwurfsmuster in C #
  • Wie man mit Reflexion in C # arbeitet
  • So arbeiten Sie mit dem Dateisystemwatcher in C #
  • So führen Sie eine verzögerte Initialisierung in C # durch
  • So arbeiten Sie mit MSMQ in C #
  • So arbeiten Sie mit Erweiterungsmethoden in C #
  • Wie wir Lambda-Ausdrücke in C #
  • Wann wird das flüchtige Schlüsselwort in C # verwendet?
  • Verwendung des Schlüsselwortsield in C #
  • So implementieren Sie Polymorphismus in C #
  • So erstellen Sie Ihren eigenen Taskplaner in C #
  • So arbeiten Sie mit RabbitMQ in C #
  • So arbeiten Sie mit einem Tupel in C #
  • Erkundung virtueller und abstrakter Methoden in C #
  • Verwendung des Dapper ORM in C #
  • Verwendung des Entwurfsmusters im Fliegengewicht in C #