Come usare parametri denominati e facoltativi in ​​C #

Microsoft ha introdotto il supporto per parametri denominati e facoltativi in ​​C # 4.0. Sebbene un parametro denominato venga utilizzato per specificare un argomento basato sul nome dell'argomento e non sulla posizione, è possibile utilizzare un parametro facoltativo per omettere uno o più parametri nella firma del metodo. I parametri di un metodo possono essere obbligatori o facoltativi a seconda che sia necessario o meno passare un valore a questi parametri quando viene chiamato il metodo.

Va notato che i parametri denominati e facoltativi possono essere utilizzati non solo con i metodi ma anche con indicizzatori e delegati. In questo articolo vengono illustrate queste due potenti funzionalità del linguaggio di programmazione C # e come è possibile utilizzarle.

Per lavorare con gli esempi di codice forniti in questo articolo, dovresti avere Visual Studio 2019 installato nel tuo sistema. Se non hai già una copia, puoi scaricare Visual Studio 2019 qui.

Crea un progetto di applicazione console in Visual Studio

Prima di tutto, creiamo un progetto di applicazione console .NET Core in Visual Studio. Supponendo che Visual Studio 2019 sia installato nel sistema, seguire i passaggi descritti di seguito per creare un nuovo progetto di applicazione console .NET Core in Visual Studio.

  1. Avvia l'IDE di Visual Studio.
  2. Fai clic su "Crea nuovo progetto".
  3. Nella finestra "Crea nuovo progetto", seleziona "App Console (.NET Core)" dall'elenco dei modelli visualizzati.
  4. Fare clic su Avanti.
  5. Nella finestra "Configura il tuo nuovo progetto" mostrata di seguito, specifica il nome e la posizione per il nuovo progetto.
  6. Fare clic su Crea.

Questo creerà un nuovo progetto di applicazione console .NET Core in Visual Studio 2019. Useremo questo progetto per lavorare con parametri denominati e facoltativi nelle sezioni successive di questo articolo.

Usa parametri denominati in C #

Quando si chiama un metodo, un costruttore, un indicizzatore o un delegato, è necessario passare argomenti per i parametri obbligatori, ma si è liberi di omettere argomenti per i parametri che sono stati definiti come parametri facoltativi.

Potrebbe spesso essere necessario chiamare un metodo che ha molti parametri. E anche quando si chiama un metodo di questo tipo con solo i parametri richiesti, a volte è estremamente difficile capire quale argomento si associa a quale parametro. Ecco dove gli argomenti con nome vengono in soccorso.

Gli argomenti con nome nel linguaggio di programmazione C # vengono utilizzati per associare il nome dell'argomento di un metodo al relativo valore, ovvero il valore passato come argomento quando si chiama il metodo. Si noti che quando si utilizza un argomento denominato, gli argomenti vengono valutati nello stesso ordine in cui sono stati passati.

Diamo un'occhiata a un esempio. Scrivi il seguente metodo denominato Add all'interno della classe Program del tuo nuovo progetto di applicazione console.

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

{

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

}

Supponiamo che tu stia chiamando il metodo Add come mostrato nello snippet di codice di seguito.

static void Main (string [] args)

{

    Aggiungi (5, 10);

}

Il codice sopra non funzionerà perché ci sono sei parametri obbligatori (nessuno è parametri opzionali) nella firma del metodo Add ma hai passato solo due argomenti. Ti verrà presentato il seguente errore.

Pertanto, sei costretto a passare valori a ciascuno dei parametri per soddisfare la chiamata come mostrato nello snippet di codice riportato di seguito.

static void Main (string [] args)

{

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

}

Le cose si complicano quando hai un mix di tipi di dati nei parametri di un metodo. Per illustrare ciò, modifichiamo il nostro metodo Add come mostrato nel seguente frammento di codice.

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

{

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

}

Ricordare i tipi di dati dei parametri e la loro posizione è macchinoso. La soluzione a ciò è sfruttare gli argomenti denominati e passare i valori al metodo come mostrato nel frammento di codice riportato di seguito.

static void Main (string [] args)

{

    Aggiungi (x: 5, y: 10, z: 8, a: 2.0, b: 3.0, c: 6.0);

}

Puoi persino modificare l'ordine degli argomenti denominati, come mostrato nello snippet di codice riportato di seguito.

static void Main (string [] args)

{

    Aggiungi (z: 8, x: 5, y: 10, c: 6, a: 2.0, b: 3.0);

}

Finché si nominano gli argomenti, è possibile passarli in qualsiasi ordine e il compilatore non contrassegnerà alcun errore, ovvero questo è perfettamente valido in C #.

Usa parametri facoltativi in ​​C #

I parametri facoltativi nel linguaggio di programmazione C # consentono di specificare gli argomenti in una firma del metodo che il chiamante del metodo è libero di omettere. In altre parole, sebbene sia necessario specificare i valori per i parametri obbligatori, è possibile scegliere di non specificare i valori per i parametri facoltativi. In alcuni casi, a un parametro facoltativo potrebbe essere associato anche un valore predefinito.

Il valore predefinito di un parametro opzionale può avere uno qualsiasi dei tre tipi di valori: un'espressione costante, un'espressione che ha la forma di un tipo di valore o un'espressione che ha la forma di default (v) dove v è un valore genere.

Il metodo Add mostrato nel frammento di codice seguente illustra come specificare argomenti facoltativi per un metodo in C #.

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

{

    ritorno x + y + z;

}

Ed ecco come puoi chiamare il metodo Add.

Aggiungi (10);

Poiché due dei parametri nel metodo Add sono facoltativi, è possibile passare un singolo valore intero al metodo quando lo si chiama. Fare attenzione a seguire l'ordine corretto di definizione dei parametri in un metodo. I parametri obbligatori dovrebbero venire per primi, seguiti dai parametri opzionali, se presenti.

I parametri denominati e facoltativi sono stati introdotti nel linguaggio di programmazione C # per migliorare l'interoperabilità con le API COM. L'utilizzo di parametri denominati può migliorare la leggibilità del codice sorgente. È inoltre possibile sfruttare i parametri opzionali in sostituzione dell'utilizzo di metodi sovraccaricati quando la definizione del metodo è identica.

Come fare di più in C #:

  • Come usare interfacce fluenti e concatenamento di metodi in C #
  • Come unit test dei metodi statici in C #
  • Come eseguire il refactoring di oggetti God in C #
  • Come usare ValueTask in C #
  • Come usare l'immutabilità in C
  • Come usare const, readonly e static in C #
  • Come usare le annotazioni dei dati in C #
  • Come lavorare con i GUID in C # 8
  • Quando usare una classe astratta e un'interfaccia in C #
  • Come lavorare con AutoMapper in C #
  • Come usare le espressioni lambda in C #
  • Come lavorare con i delegati Action, Func e Predicate in C #
  • Come lavorare con i delegati in C #
  • Come implementare un semplice logger in C #
  • Come lavorare con gli attributi in C #
  • Come lavorare con log4net in C #
  • Come implementare il modello di progettazione del repository in C #
  • Come lavorare con la riflessione in C #
  • Come lavorare con Filesystemwatcher in C #
  • Come eseguire l'inizializzazione pigra in C #
  • Come lavorare con MSMQ in C #
  • Come lavorare con i metodi di estensione in C #
  • Come utilizzare espressioni lambda in C #
  • Quando usare la parola chiave volatile in C #
  • Come utilizzare la parola chiave yield in C #
  • Come implementare il polimorfismo in C #
  • Come creare il proprio pianificatore di attività in C #
  • Come lavorare con RabbitMQ in C #
  • Come lavorare con una tupla in C #
  • Esplorazione di metodi virtuali e astratti in C #
  • Come utilizzare Dapper ORM in C #
  • Come utilizzare il modello di progettazione del peso mosca in C #