在我的c#windows store应用程序中,我有以下代码行来检测是否按下了CTRL键。我从在线样本中获得了这个代码,它运行得很好。
var state = Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.Control);
if ((state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down)
{
// do something with e.Key
}
具体来说,我以前从未见过if语句中的语法。
+ 用于添加整数或串联字符串,&& 用于组合2个布尔表达式,那么& 是什么在这种情况下呢?
答案 0 :(得分:8)
它是按位AND,并检查该特定位(或位是否已设置)。
您可能希望谷歌在枚举上使用FlagsAttribute。他们解释了你想要理解的内容。
在此示例中,您希望查看Control的键状态。
答案 1 :(得分:2)
这是一个按位运算符。您的状态可能包含其他几个位标志,但在这种情况下您只对“向下”标志感兴趣。所以&运算符正在过滤所有其他(可能的)标志,因此只有这一个由==运算符进行测试。