C# - 输出参数的语法糖?

Jos*_*dan 8 c# parameters syntactic-sugar

让我们说一下,C#允许最纯粹意义上的多个返回值,我们希望看到类似的东西:

string sender = message.GetSender();
string receiver = message.GetReceiver();
Run Code Online (Sandbox Code Playgroud)

压缩到:

string sender, receiver = message.GetParticipants();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在实际调用方法之前,我不必理解方法的返回值.也许我依靠Intellisense来告诉我我正在处理什么样的返回值,或者我正在寻找一种从我不熟悉的类中返回我想要的方法.

同样,我们目前在C#中有类似的东西:

string receiver;
string sender = message.GetParticipants(out receiver);
Run Code Online (Sandbox Code Playgroud)

GetParticipants的参数是out字符串参数.但是,这与上面的有点不同,因为这意味着我必须先抢占,或者至少返回并编写创建变量以保存out参数结果的代码.这有点违反直觉.

我的问题是,当前C#中是否存在任何语法糖,它允许开发人员在与方法调用相同的行中进行此声明?我认为它会使开发变得更加流畅,并且如果我做了类似的事情,也会使代码更具可读性:

string sender = message.GetParicipants(out string receiver);
Run Code Online (Sandbox Code Playgroud)

表明接收器是在现场宣布和分配的.

Jon*_*eet 9

不,目前还没有任何语法糖.我没有听说有任何意图介绍任何一个.

我不能说我out经常使用参数因为它真的是我的一个重要问题(还有其他功能我宁愿C#团队花时间)但我同意这有点烦人.


wek*_*mpf 5

.NET 4将添加一个Tuple概念,用于解决这个问题.不幸的是,C#语言不会为"解构绑定"提供任何语言支持.

  • 它被称为"解构绑定". (2认同)