Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le novità  del .NET Framework 4.0: Optional Parameter

Le novità del .NET Framework 4.0: Optional Parameter
Le novità del .NET Framework 4.0: Optional Parameter
Link copiato negli appunti

Gli Optional Parameter rappresentano una nuova ed interessante funzionalità  offertaci dal C# 2010, la nuova versione di C# presente nel .NET Framework 4.0.

In pratica, gli optional parameter ci consentono di specificare che uno o più parametri di un metodo, di un indexer, di un costruttore o di un delegate, sono facoltativi e che quindi nella chiamata possono anche essere omessi. Per fare questo è sufficiente specificare in fase di dichiarazione dei parametri un valore di default (solo valori costanti, non variabili). Ogni chiamata dovrà  quindi fornire gli argomenti per ciascuno dei parametri obbligatori ma potrà  omettere gli argomenti per i parametri opzionali che assumeranno quindi come valore il valore di default specificato in fase di dichiarazione. La dichiarazione dei parametri opzionali deve seguire quella dei parametri obbligatori e non si possono intervallare parametri opzionali ed obbligatori. Inoltre nella chiamata se viene passato il valore per uno dei parametri opzionali è necessario specificare anche il valore di tutti i parametri opzionali precedenti ad esso.

Prendiamo ad esempio il seguente metodo:

public void MyMethod(int required, string opt1 = "valore di default", int opt2 = 7);

In questa dichiarazione abbiamo un parametro obbligatorio e due opzionali. Come vediamo i due opzionali seguono la dichiarazione del parametro obbligatorio. Se volessimo richiamare il metodo specificando solo il parametro obbligatorio potremmo scrivere:

MyMethod(10);

Se volessimo invece richiamare il metodo specificando solo il parametro obbligatorio ed il parametro opt2, non potremmo scrivere

MyMethod(10,3);

perché questo causerebbe un errore di compilazione. Dovremmo invece scrivere:

MyMethod(10, "", 3);

Oppure potremmo sfruttare i Named Argument in questo modo:

MyMethod(10, opt2: 3);

Ti consigliamo anche