int a, b, n;
...
(a, b) = (2, 3);
// 'a' is now 2 and 'b' is now 3
Такая вещь была бы очень полезна в С#. В этом примере "a" и "b" объединены вместе, такие как X и Y позиции могут быть. Это существует в той или иной форме?
Ниже представлен менее тривиальный пример.
(a, b) = n == 4 ? (2, 3) : (3, n % 2 == 0 ? 1 : 2);
Адам Марас показывает в комментариях, что:
var result = n == 4 ? Tuple.Create(2, 3) : Tuple.Create(3, n % 2 == 0 ? 1 : 2);
Сортировка работ для вышеприведенного примера, однако, как он затем указывает, он создает новый кортеж вместо изменения указанных значений.
Эрик Липперт просит использовать прецеденты, поэтому возможно:
(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 также имеет прецеденты, они находятся в его ответе ниже.