Diciamo per un momento che C# ha permesso più valori di ritorno nel senso più puro, dove ci si aspetterebbe di vedere qualcosa di simile:C# - Zuccheri sintattici per parametri esterni?
string sender = message.GetSender();
string receiver = message.GetReceiver();
compattato a:
string sender, receiver = message.GetParticipants();
In tal caso, Non devo capire i valori di ritorno del metodo finché non faccio effettivamente la chiamata al metodo. Forse mi affido ad Intellisense per dirmi quale valore/i di rendimento ho a che fare, o forse sto cercando un metodo che restituisca ciò che voglio da una classe con cui non ho familiarità.
Allo stesso modo, abbiamo qualcosa di simile, attualmente, in C#:
string receiver;
string sender = message.GetParticipants(out receiver);
dove l'argomento per GetParticipants è un parametro fuori stringa. Tuttavia, questo è un po 'diverso da quello sopra perché significa che devo anticipare, o almeno tornare indietro e scrivere, codice che crea una variabile per contenere il risultato del parametro out. Questo è un po 'controintuitivo.
La mia domanda è, c'è qualche zucchero sintattico nell'attuale C#, che consente a uno sviluppatore di fare questa dichiarazione nella stessa riga della chiamata al metodo? Penso che sarebbe rendere lo sviluppo di una (piccola) po 'più fluida, e anche rendere il codice più leggibile se stessi facendo qualcosa di simile:
string sender = message.GetParicipants(out string receiver);
per dimostrare che il ricevitore veniva dichiarato e assegnato sul posto.
L'esempio C# esistente deve aggiungere il modificatore "out" all'argomento * pure: string sender = message.GetParticipants (out receiver); –
modifica GetParicipants, non ho i diritti per farlo –
Questo è stato [suggerito come possibile funzionalità per C# 6.0] (http://damieng.com/blog/2013/12/09/probable-c-6- 0-caratteristiche-illustrate). –