2014-01-19 188 views
0

在我的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個布爾表達式,那麼,是什麼&做在這種情況下?

+1

按位與..... –

+0

[How&works when int res = num1&num2 where num1 and num2 is integer type]可能的重複(http://stackoverflow.com/questions/13700695/how-作品 - 當-INT-RES-NUM1-NUM2-其中-NUM1和 - NUM2-是整數型) –

回答

8

這是一個按位與,並檢查是否確定位(或位已設置)。

您可能想讓Google針對枚舉上的FlagsAttribute。他們解釋你想了解的內容。

在這個例子中,你想看到控制的關鍵狀態。

2

這是一個按位AND運算符。你的狀態可能包含其他幾個位標誌,但是你只對這種情況下的「Down」標誌感興趣。所以&運算符將所有其他(可能的)標誌過濾掉,所以只有這個標誌被==運算符測試。

相關問題