是否可以解构一个不是从方法返回但作为输出参数的元组?我不确定我是否正确表达了自己的意思,甚至不确定是否使用了正确的术语,所以这里有一些例子:
void OutMethod(out (int aNumber, string someText) output)
=> output = (15, "yo");
void Usage()
{
{
// Works, of course.
OutMethod(out var tuple);
// But *slightly* aesthetically unappealing to use.
var usage = $"{tuple.someText}: {tuple.aNumber}";
}
{
// Would be awesome, but doesn't work.
OutFunction(out var(number, text));
}
{
// Would be awesome too, but doesn't work.
OutFunction(out (var number, var text));
}
{
// This doesn't work either.
OutFunction((out var number, out var text));
}
{
// Not even this.
OutFunction((out int number, out string text));
}
{
// Or this.
OutMethod(out (int number, string text));
}
{
// Or this.
int number;
string text;
OutMethod(out (number, text));
}
}
顺便说一句,没有抱怨。只是想知道我是否错过了什么。
目前这是不可能的。此外,根据 CSharplang github 存储库上的评论 https://github.com/dotnet/csharplang/issues/611#issuecomment-303001490:
这是我们在 LDM(语言设计会议)中进行分类并决定不这样做的事情,至少在不久的将来......
因此,在未来一段时间内,这可能仍然是“不可能”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)