2

显然,以下在 c# 中完全没问题;

int a;
int b = a = 2;

是否可以在单个语句中在 c# 中进行多个变量赋值?

即类似的东西;

int a = (int b = 2);
4

5 回答 5

6

如果我们看:

int a;
int b = a = 2;

基本上就是a=2;这样b=a;(但没有额外的评估)。所以我们可以通过颠倒顺序得到类似的结果:

int a = 2, b = a;

但是:我会说有点犹豫:也请优先考虑可读性。

于 2012-08-20T15:50:00.650 回答
3

据我所知不是。我知道的唯一变化是:

int a = 2, b = 2;
于 2012-08-20T15:47:05.570 回答
3

可能与您将要获得的一样近。

int a, b = a = 2;

Console.WriteLine(a.ToString()); // 2
Console.WriteLine(b.ToString()); // 2
于 2012-08-20T15:47:40.333 回答
0

不,但你可以

int a = 2, b = a;

这里 a 将被初始化,然后 b 将被初始化为与 a 相同的值。

或者

int a, b = 2;

或者

int a = 2, b = 2;

或者如你所说

int a = b = 2;
于 2012-08-20T15:46:38.767 回答
0

你是这个意思?

int a = 2, b = 2;

工作正常

于 2012-08-20T15:47:07.673 回答