Скажем на минуту, что C # допускает множественные возвращаемые значения в самом чистом смысле, где мы ожидаем увидеть что-то вроде:
string sender = message.GetSender();
string receiver = message.GetReceiver();
сжато до:
string sender, receiver = message.GetParticipants();
В этом случае мне не нужно понимать возвращаемые значения метода, пока я фактически не вызову метод. Возможно, я полагаюсь на Intellisense, чтобы сообщить мне, с какими возвращаемыми значениями я имею дело, или, возможно, я ищу метод, который возвращает то, что я хочу, из класса, с которым я не знаком.
Аналогично, у нас есть что-то вроде этого, в настоящее время в C #:
string receiver;
string sender = message.GetParticipants(out receiver);
где аргумент GetParticipants является строковым параметром out . Однако это немного отличается от вышеприведенного, потому что это означает, что мне нужно выгрузить код или, по крайней мере, вернуться назад и написать код, который создает переменную для хранения результата параметра out. Это немного нелогично.
У меня вопрос: есть ли синтаксический сахар в текущем C #, который позволяет разработчику сделать это объявление в той же строке, что и вызов метода? Я думаю, что это сделало бы разработку (крошечную) более плавной, а также сделало бы код более читабельным, если бы я делал что-то вроде:
string sender = message.GetParicipants(out string receiver);
, чтобы показать, что получатель был объявлен и назначен на месте.