【发布时间】:2015-06-03 09:42:45
【问题描述】:
我已经在 SO(here 等)周围看到了一些对 & 的解释(以及对 | 的大量解释),但没有一个解释在以下场景中使用 &:
else if ((e.AllowedEffect & DragDropEffects.Move) == DragDropEffects.Move) {...}
取自MSDN
谁能解释一下,具体到这个用法?
谢谢。
【问题讨论】:
-
它检查
DragDropEffects.Move是否是AllowedEffect枚举值中的设置标志之一。 This should be useful reading -
请注意,这个例子有点老了。有来自 .NET 4 的
e.AllowedEffect.HasFlag(DragDropEffects.Move)。您可能会发现它更容易理解。 -
@JesseGood 大多数情况下是更好的选择。但它有缺点:1)速度较慢 2)如果指定多个标志会发生什么并不明显。 (它检查是否设置了所有标志)