i've seen explanations of & (and plenty of explanations of |) around (here etc), none clarify use of & in following scenario:
else if ((e.allowedeffect & dragdropeffects.move) == dragdropeffects.move) {...} taken msdn
can explain this, specific usage?
thanks.
e.allowedeffect possibly combination of bitwise flags. & operator performs bit bit "and" logical operation each bit. result if bit under test one, result single flag. test writter in way same result:
else if ((e.allowedeffect & dragdropeffects.move) != 0 ) {...} lets explain better example, flag value these:
none = 0, copy = 1, move = 2, link = 4, so in binary:
none = 00000000,
copy = 00000001, move = 00000010, link = 00000100, so consider case in under test have combination of copy , move, ie value be:
00000011 by bitwise , move have:
00000011 -->copy | move 00000010 -->move ======== & 00000010 === move
Comments
Post a Comment