enum之Flags特性
来源:互联网 发布:王千源事件 知乎 编辑:程序博客网 时间:2024/06/08 18:16
[Flags]的微软解释是“指示可以将枚举作为位域(即一组标志)处理。”其实就是在编写枚举类型时,上面附上Flags特性后,用该枚举变量是既可以象整数一样进行按位的“|”或者按位的“&”操作了。
另外一个是在引用COM组件时使用,比如权限、执行状态等,都可以用一个int型保存到数据库中,C#中使用枚举可以处理这个问题。
private static void Main(string[] args) { Permission permission = Permission.create | Permission.read | Permission.update | Permission.delete; Console.WriteLine("1、枚举创建,并赋值……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); permission = (Permission)Enum.Parse(typeof(Permission), "5"); Console.WriteLine("2、通过数字字符串转换……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); permission = (Permission)Enum.Parse(typeof(Permission), "update, delete, read", true); Console.WriteLine("3、通过枚举名称字符串转换……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); permission = (Permission)7; Console.WriteLine("4、直接用数字强制转换……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); permission = permission & ~Permission.read; Console.WriteLine("5、去掉一个枚举项……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); permission = permission | Permission.delete; Console.WriteLine("6、加上一个枚举项……"); Console.WriteLine(permission.ToString()); Console.WriteLine((int)permission); Console.WriteLine((int)Permission.delete); Console.ReadKey(); } [Flags] public enum Permission { create = 1, read = 2, update = 4, delete = 8, }
结果
http://blog.sina.com.cn/s/blog_8b7263d10101br8e.html
0 0
- enum之Flags特性
- Flags Enum
- enum flags
- java特性之Enum枚举类型
- enum类的FlagsAttribute(或Flags)用法
- C#的Enum中Flags的用法
- 黑马程序员—JDK1.5新特性之枚举enum
- TensorFlow之flags用法
- iptables之tcp flags
- Java高级特性-Enum
- C#枚举中使用Flags特性
- 枚举关于Flags特性的使用
- The Beginner's Guide to Using Enum Flags
- What does the [Flags] Enum Attribute mean in C#?
- flags ()
- Flags
- Flags
- enum[枚举]_基本特性
- 子div撑不开父div的几种解决方法
- RecyclerView的点击事件
- 【spring注解解析】@RequestBody,@ResponseBody
- stickup效果的实现
- 京东消息中间件的演进
- enum之Flags特性
- mysql 基本操作
- OpenSSL 的使用详解
- A strange lift
- 到底要不要买securecrt的license
- 用类别添加方法可能存在的问题
- springMvc入门--初识springMvc
- bzoj 1316: 树上的询问 (点分治)
- 微信支付注意事项--Android版