利用按位取反(~)从复合枚举值里清除枚举值
来源:互联网 发布:网络文件服务器软件 编辑:程序博客网 时间:2024/05/20 15:11
以 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 这种效果从原枚举值中清除了。
0 0
- 利用按位取反(~)从复合枚举值里清除枚举值
- 枚举——复合值类型
- 清除Cookies(根据系统目录枚举值)
- 枚举 | 利用DescriptionAttribute定义枚举值的描述信息
- 15 如何从枚举中获得枚举项名称值
- 枚举把值放到map里
- 枚举 USB 复合设备
- java_枚举类枚举值
- 枚举值与枚举类
- 从字符串中获取枚举值
- python里使用enum库枚举类型时枚举值相同
- python里使用enum库枚举类型时枚举值唯一
- 如何读取结构或枚举里的值
- 在Swift里两个枚举值一起使用的方法
- 复合数据类型(结构体 共用体 枚举)
- 枚举值转换(字符串转换为枚举和整数转换为枚举)
- 枚举值转换(字符串转换为枚举和整数转换为枚举)
- 枚举值转换(字符串转换为枚举和整数转换为枚举)
- IO流03--毕向东JAVA基础教程视频学习笔记
- Python 用 LDAP 验证用户名和密码
- IO流04--毕向东JAVA基础教程视频学习笔记
- codevs 2033 邮票 (背包)&& codevs 1047 邮票面值设计 (dfs+dp)
- 打印数组——Arrays.toString(a)
- 利用按位取反(~)从复合枚举值里清除枚举值
- IO流05--毕向东JAVA基础教程视频学习笔记
- 不可重入函数与线程安全函数
- js验证身份证号
- 网络编程2--毕向东java基础教程视频学习笔记
- WinForm 中 Control.SuspendLayout, Control.ResumeLayout, PerformLayout 之间的关系
- java的30个学习目标[转]
- 目前最流行的八种装修风格
- 网络编程3--毕向东java基础教程视频学习笔记