有人可以解释一下这是如何工作的吗?
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)。