Visual C# 2010 introduce tra le altre novità anche i Named Argument o Named Parameter. Questi rappresentano la possibilità di passare parametri a metodi, indexer, costruttori o delegate specificandone il nome e senza quindi dover necessariamente rispettare il loro ordine. La funzionalità Named Argument non richiede alcuna particolare sintassi in quanto è già presente di default in C# 2010.
Dopo aver definito ad esempio un metodo nella classica maniera:
public Utente GetUtente ( int id, string nome, string cognome) { ... }
possiamo richiamare il metodo specificando il nome dei parametri:
Utente u = GetUtente( id: 100, nome: "Gianni", cognome: "Malanga");
Ma la vera novità di questa funzionalità sta nel fatto che possiamo anche non rispettare l'ordine dei parametri se ad esempio non lo ricordiamo:
Utente u = GetUtente(cognome: "Malanga", id: 100, nome: "Gianni");
àˆ possibile inoltre specificare il nome anche solo per alcuni parametri:
Utente u = GetUtente( 100, nome: "Gianni", cognome: "Malanga");
In questo caso però è ammesso solo specificare un parametro posizionale seguito da uno named e non il contrario. Ad esempio la seguente chiamata solleverebbe un errore di compilazione:
Utente u = GetUtente( id: 100, "Gianni", "Malanga");