以 C# 中的 System.Drawing.FontStyle 为例。
如果需要同时有多种效果,
如:“粗体”和“下划线”的效果,可以用按位或(|)
FontStyle style = FontStyle.Bold | FontStyle.Underline;
如果需要去除 style 里的某一种效果,
如:去除“下划线”的效果,可以用按位取反(~)和按位与(&)
style = style & ~FontStyle.Underline;
原理:
public enum FontStyle { Regular = 0, Bold = 1, Italic = 2, Underline = 4, Strikeout = 8, }
- FontStyle.Underline 的值用二进制表示为:100
- 按位取反后为:011
- 原枚举值与 011 按位与操作后,二进制表示的倒数第三位是 0,后两位还是原值。这样就把 FontStyle.Underline 这种效果从原枚举值中清除了。