如何同时将两个差异值分配给两个变量

时间:2019-02-19 10:05:28

标签: c#

我想同时为多个变量赋值。我知道它在python中如何工作,但我需要C#的等效语言。

我发现,如果我想为新变量赋值,我可以这样做。

int a = 1 , b = 1;
//This works fine but now I need to set the variables again
a = b , b = a + b;
//But i can't do it like that
//I know that in python it would look like this (a , b = b , a+b)

3 个答案:

答案 0 :(得分:5)

这是有效的C#,使用C#7中引入的元组:

int (a, b) = (1, 2);
(a, b) = (b, a + b);

我不会说这是惯用的C#-我从来没有在野外看到它,而且我认为很多人都不知道您可以做到这一点-但这是有效的。

编译器实际上并没有使用ValueTuple类来执行此操作-它合成了以下代码:

int a = 1;
int b = 2;
int temp1 = b;
int temp2 = a + b;
a = temp1;
b = temp2;

答案 1 :(得分:0)

我不知道我是否正确,但这就是您想要的吗?

static void Main(string[] args)
    {
      int a = 1, b = 1;
      a = b = (a + b);
      Console.WriteLine($"{a} {b}");
      Console.ReadKey();
    }

答案 2 :(得分:0)

会     b + = b; 为您工作,因为a == b?!