有人可以解释一下这是如何工作的吗?
if ((Control.MouseButtons & MouseButtons.Left) != 0)
MSDN 只说 Control.MouseButtons 属性获取一个值,指示哪个鼠标按钮处于按下状态,但我无法理解“&”是如何工作的,为什么它应该不同于 0。
与普通枚举相比,该MouseButtons
属性有点标志。这意味着它可以同时保存 和 之类MouseButtons.Left
的值MouseButtons.Right
。它通过使用1 / 0
值中特定位的状态来表示状态来做到这一点。 MouseButtons.Left
并MouseButtons.Right
代表这些国家。
该&
操作称为bitwise and
. 它将返回一个值,该值具有1
左值和右值中的位。MouseButtons.Left
因此,只有当该位设置MouseButtons
为表示确实按下了左按钮时,此特定表达式才会是非零的
Control.MouseButtons是按位组合。
表达方式:
if ((Control.MouseButtons & MouseButtons.Left) != 0)
正在检查该位MouseButtons.Left
是否已设置(值为 1)。