有人可以向我解释这行c#代码吗?

ror*_*yok 0 c# boolean-logic

在我的c#windows商店应用程序中,我有以下代码行来检测是否按下了CTRL键.我从在线样本中获得了这个代码,它运行得很好.

var state = Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.Control);
if ((state & CoreVirtualKeyStates.Down) == CoreVirtualKeyStates.Down)
{
    // do something with e.Key
}
Run Code Online (Sandbox Code Playgroud)

具体来说,我以前从未见过if语句中的语法.

+用于添加整数或串联字符串,而&&用于组合2个布尔表达式,那么在这个上下文中做什么做什么?

Sna*_*ake 8

这是一个按位AND,并检查是否某个位(或位已设置).

您可能希望谷歌在枚举上使用FlagsAttribute.他们解释了你想要理解的内容.

在此示例中,您希望查看Control的键状态.