|=
- побитовое или присваивание.
Это утверждение:
BorderSides s = BorderSides.Left;
s |= BorderSides.Right;
совпадает с
BorderSides s = BorderSides.Left;
s = s | BorderSides.Right;
Обычно это используется в перечислениях в качестве флагов, чтобы иметь возможность хранить несколько значений в одном значении, например 32-разрядном целом числе (размер по умолчанию enum
в C #).
Это похоже на оператор +=
, но вместо сложения вы выполняете побитовый или.