有人可以解释一下这是如何运作的吗?
if ((Control.MouseButtons & MouseButtons.Left) != 0)
MSDN只说Control.MouseButtons属性获取一个值,指示哪个鼠标按钮处于按下状态,但我无法理解它是如何'&'有效,为什么它应该与0不同。
答案 0 :(得分:2)
MouseButtons
属性是一个标志与正常枚举。这意味着它可以同时保存MouseButtons.Left
和MouseButtons.Right
等值。它通过使用值中特定位的1 / 0
状态来表示状态。 MouseButtons.Left
和MouseButtons.Right
代表这些州。
&
操作称为bitwise and
。它将返回一个值,该值在左侧和右侧都具有1
的位。因此,当在MouseButtons.Left
中设置MouseButtons
位意味着左按钮确实被按下时,此特定表达式将仅为非零
答案 1 :(得分:1)
Control.MouseButtons是一种按位组合。
表达式:
if ((Control.MouseButtons & MouseButtons.Left) != 0)
正在检查是否设置了位MouseButtons.Left
(值为1)。