2014-01-19 1 views
0

내 C# Windows 저장소 응용 프로그램에서 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

비트 단위 AND ..... –

+0

가능한 복제본 [int res = num1 & num2 인 경우 num1과 num2는 정수형입니다] (http://stackoverflow.com/questions/13700695/how- 작품 - 때 - int - res - num1 - num2 - 어디 - num1 - and - num2 - 있습니다 - 정수 타입) –

답변

8

비트 AND이고 특정 비트 (또는 비트가 설정되었는지)를 확인합니다.

Google에 enum의 FlagsAttribute를 원할 수 있습니다. 그들은 당신이 이해하고 싶은 것을 설명합니다.

이 예제에서는 Control의 키 상태를보고 싶습니다.

2

이것은 비트 AND 연산자입니다. 주에는 여러 다른 비트 플래그가 포함될 수 있지만이 경우에는 "아래로"플래그에만 관심이 있습니다. 따라서 & 연산자는 다른 (가능한) 플래그를 모두 필터링하므로이 연산자 만이 == 연산자로 테스트됩니다.

관련 문제