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)
表明接收器是在现场宣布和分配的.