int a, b, n;
...
(a, b) = (2, 3);
// 'a' is now 2 and 'b' is now 3
这种功能在C#中非常有用。在这个例子中,'a'和'b'没有像位置的X和Y那样封装在一起。这种功能是否以某种形式存在?
下面是一个不太琐碎的例子。
(a, b) = n == 4 ? (2, 3) : (3, n % 2 == 0 ? 1 : 2);
Adam Maras在评论中指出:
var result = n == 4 ? Tuple.Create(2, 3) : Tuple.Create(3, n % 2 == 0 ? 1 : 2);
对于上面的示例有点起作用,但正如他所指出的那样,它创建了一个新的元组而不是更改指定的值。
Eric Lippert要求使用情况,因此也许:
(a, b, c) = (c, a, b); // swap or reorder on one line
(x, y) = move((x, y), dist, heading);
byte (a, b, c, d, e) = (5, 4, 1, 3, 2);
graphics.(PreferredBackBufferWidth, PreferredBackBufferHeight) = 400;
notallama也有一些使用案例,可以在他下面的回答中查看。
int a = 2; int b = 3;
- JonHint a = 2,b = 3;
可选择将逗号后的空格替换为换行符。 - BoltClock