让我们说一下,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 参数的结果的代码。这有点违反直觉。
我的问题是,当前 C# 中是否有任何语法糖允许开发人员在与方法调用相同的行中进行此声明?我认为这会使开发(微小)更加流畅,并且如果我正在执行以下操作,也会使代码更具可读性:
string sender = message.GetParicipants(out string receiver);
以表明接收者正在当场宣布和分配。