是否可以结合两个条件

时间:2014-12-18 21:00:25

标签: c#

我有以下两个条件:

            if (someOtherStuff && Keyboard.Modifiers == ModifierKeys.Control)
            {
                e.Cancel = true;
            }

            if (someOtherStuff && Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift))
            {
                e.Cancel = true;
            }

我想知道是否可以将这两个if clauses合并为一个?或者我的方式是正确的?如果他们按住Control按钮,并且按住Control and Shift按钮

3 个答案:

答案 0 :(得分:3)

由于ModifierKeys枚举标记有Flags属性,因此您可以使用bitwise AND检查关键字组合是否包含 {{1密钥,我相信你所追求的是:

Control

答案 1 :(得分:2)

if ((someOtherStuff && Keyboard.Modifiers == ModifierKeys.Control) ||
 (someOtherStuff && Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift))
{
    e.Cancel = true;
}

答案 2 :(得分:1)

你可以这样做:

if (someOtherStuff && (Keyboard.Modifiers == ModifierKeys.Control ||
                       Keyboard.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift)))
{
    e.Cancel = true;
}

或者你还有其他想法吗?