有人可以向我解释这行c#代码吗?
问题描述:
在我的C#窗口商店应用程序我有以下代码行来检测是否按下CTRL键。我从一个在线样本中获得了这个代码,它完美地工作。有人可以向我解释这行c#代码吗?
var state = Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.Control);
if ((state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down)
{
// do something with e.Key
}
具体来说,我从来没有见过if语句之前的语法。
+是将int或连接字符串,并& &是结合2个布尔表达式,那么,是什么&做在这种情况下?
答
这是一个按位与,并检查是否确定位(或位已设置)。
您可能想让Google针对枚举上的FlagsAttribute。他们解释你想了解的内容。
在这个例子中,你想看到控制的关键状态。
答
这是一个按位AND运算符。你的状态可能包含其他几个位标志,但是你只对这种情况下的“Down”标志感兴趣。所以&运算符将所有其他(可能的)标志过滤掉,所以只有这个标志被==运算符测试。
按位与..... –
[How&works when int res = num1&num2 where num1 and num2 is integer type]可能的重复(http://*.com/questions/13700695/how-作品 - 当-INT-RES-NUM1-NUM2-其中-NUM1和 - NUM2-是整数型) –