Boolean Compound Assignment Operators
I ran across some code the other day I don't really recall ever seeing:
x |= y
I initially confused this with the Ruby memoization operator (
||=). Then I realized this is just a regular compound assignment operator, most commonly seen with arithmetic operations like
x += y. As you would expect, you can use both
| in this way.
This is useful for boolean operations, which occur fairly frequently in some of the Xamarin (mobile) work I've been doing.
Folder.Attributes |= FileAttributes.Directory | FileAttributes.Hidden
I bonus thing I leared when looking into this, is the use of the bitwise-NOT:
~FileAttributes.System. This allows you to say "all values except