这个C#代码片段如何工作?

9 c# asp.net

有人可以解释下面这段代码

int x = 45; 
int y = x &= 34;
Run Code Online (Sandbox Code Playgroud)

它指定32到 y

Jon*_*eet 25

它作为复合赋值运算符执行按位"和".它相当于:

int x = 45;
x = x & 34;
int y = x;
Run Code Online (Sandbox Code Playgroud)

现在45 = 32 + 8 + 4 + 1,34 = 32 + 2,因此按位"和"的结果为32.

我个人认为在变量声明中使用复合赋值运算符是非常难以理解的 - 但可能这不是"真正的"代码开始...


Bas*_*ers 10

int x = 45; 
int y = x &= 34;
Gives: y = 32

int x = 45;  // 45 = 101101
             // 34 = 100010
x = x & 34;  // 101101
             // 100010 &
             // --------
             // 100000  ( = 32 )

int y = x;    //  y = 32
Run Code Online (Sandbox Code Playgroud)