Digamos por un momento que C# permite múltiples valores de retorno en el sentido más puro, donde esperaríamos ver algo como:C# - Azúcar sintáctico para los parámetros de salida?
string sender = message.GetSender();
string receiver = message.GetReceiver();
compactado a:
string sender, receiver = message.GetParticipants();
En ese caso, No tengo que entender los valores de retorno del método hasta que realizo la llamada al método. Tal vez confío en Intellisense para decirme a qué valor (s) de retorno me refiero, o tal vez estoy buscando un método que devuelva lo que quiero de una clase con la que no estoy familiarizado.
Del mismo modo, tenemos algo como esto, en la actualidad, en C#:
string receiver;
string sender = message.GetParticipants(out receiver);
donde el argumento a GetParticipants es un parámetro cabo cadena. Sin embargo, esto es un poco diferente al anterior porque significa que debo anticiparme con, o al menos volver atrás y escribir, el código que crea una variable para contener el resultado del parámetro out. Esto es un poco contrario a la intuición.
Mi pregunta es, ¿hay algún azúcar sintáctico en la corriente C#, que permita a un desarrollador hacer esta declaración en la misma línea que la llamada al método? Creo que sería hacer que el desarrollo de una (pequeña) poco más de líquido, y también hacer el código más legible si estuviera haciendo algo como:
string sender = message.GetParicipants(out string receiver);
para demostrar que el receptor estaba siendo declarada y asignada en el acto.
Su ejemplo actual de C# también debería agregar el modificador "out" al * argumento *: string sender = message.GetParticipants (out receiver); –
edite los GetParicipants, no tengo derecho a hacerlo –
Esto ha sido [sugerido como una posible característica para C# 6.0] (http://damieng.com/blog/2013/12/09/probable-c-6- 0-features-illustrated). –