C#的枚举类型跟C++差不多,一般我们将enum设为单个状态,比如enum color_t { RED, BLACK, GREEN}, 只能选择一个

而有的时候枚举可以作为位运算来进行与或运算,比如ControlStyles这个枚举,看下面一段从TabControlEx中的一段代码

            base.SetStyle(
                 ControlStyles.UserPaint |
                 ControlStyles.OptimizedDoubleBuffer |
                 ControlStyles.AllPaintingInWmPaint |
                 ControlStyles.ResizeRedraw |
                 ControlStyles.SupportsTransparentBackColor,
                 true);
             base.UpdateStyles();       

这里我自己写了一段代码来看个别位是否设置了

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

 namespace test4
 {
     class Program
     {
         public enum ChangedTypes
         {
             Created = 0x0001,
             Deleted = 0x0002,
             Changed = 0x0004,
             Renamed = 0x0008,
             Added = 0x0010
         }
         public class Image
         {
             private ChangedTypes types;
             public ChangedTypes Types { get; set; }
         }

         static void Main(string[] args)
         {
             Image image = new Image();
             image.Types = ChangedTypes.Created | ChangedTypes.Changed | ChangedTypes.Added;
             if ((image.Types & ChangedTypes.Created) == ChangedTypes.Created)
             {
                 Console.WriteLine("image has been Created");
             }
             else
             {
                 Console.WriteLine("image has not been Created");
             }
             if ((image.Types & (ChangedTypes.Created | ChangedTypes.Changed)) == (ChangedTypes.Created | ChangedTypes.Changed))
             {
                 Console.WriteLine("image has been Created and Changed");
             }
             else
             {
                 Console.WriteLine("image has not been Created or Changed");
             }
         }
     }
 }

C#: enum的更多相关文章

  1. 转:enum与typedef enum的用法

    来自:http://blog.sina.com.cn/s/blog_817a5eb6010146ad.html 作者:于超峰 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#defi ...

  2. (转载)C#:Enum、Int和String的互相转换,枚举转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用 Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举.注意:枚举类型的基类 ...

  3. C/C++使用心得:enum与int的相互转换

    如何正确理解enum类型? 例如: enum Color { red, white, blue}; Color x; 我们应说x是Color类型的,而不应将x理解成enumeration类型,更不应将 ...

  4. 【转】C/C++使用心得:enum与int的相互转换

    https://blog.csdn.net/lihao21/article/details/6825722 如何正确理解enum类型? 例如: enum Color { red, white, blu ...

  5. Docs-.NET-C#-指南-语言参考-关键字-值类型:enum

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:enum 1.返回顶部 1. enum(C# 参考) 2015/07/20 enum 关键字用于声明枚举,一种包含一组被称为枚 ...

  6. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  7. 枚举:enum——初写

    入门的时候,针对某一字段状态的判断,一开始是在前端用if else 判断,有一些弊端:①把内置的code暴露给用户②if else最好不要超过3层③前端很长一段冗余判断不规范后改进使用枚举,在后台进行 ...

  8. 吴裕雄--天生自然C语言开发:enum(枚举)

    enum DAY { MON=, TUE, WED, THU, FRI, SAT, SUN }; enum DAY { MON=, TUE, WED, THU, FRI, SAT, SUN }; en ...

  9. 总是容易忘记:enum、int、string之间的快速转换

    public enum Color { Red=, Green= } (1)Enum转换为String Color.Read.ToString() Convert.ToString(Color.Gre ...

随机推荐

  1. 【转】unity地形插件T4M使用帮助

    unity的地形系统在手机游戏中因为效率问题基本无法使用,只能通过T4M这个地形插件来进行优化制作.下面大概讲解一下使用流程及方法. 先中U3D里面用自带的地形系统刷出想要的地形和贴图.贴图可以大概刷 ...

  2. Unix网络编程(迭代服务器)

    #include <stdio.h> #include <string.h> #include <sys/types.h> #include <sys/soc ...

  3. 【android学习2】:Eclipse中HttpServlet类找不到

    Eclipse中使用的HttpServlet类之所以识别不到的原因是没有导入Servlet-api.jar包,这个包在所安装在的tomcat的lib文件下,所以只需要导入即可. 在需要导入的工程上右键 ...

  4. window平台安装MongoDB

    官网:www.mongodb.org 安装-->设置环境变量-->启动 1.下载: 根据系统下载 32 位或 64 位的 .msi 文件,下载后双击该文件,按提示安装即可, 2.设置安装目 ...

  5. 【转】Android性能优化之布局优化篇

     转自:http://blog.csdn.net/feiduclear_up/article/details/46670433 Android性能优化之布局优化篇 分类: andorid 开发2015 ...

  6. miaov- 自动生成正V反V大于号V小于号V楼梯等图案

    1. 核心:控制 数量的长度-1-i的位置,是放在left上还是top上?是放在前面还是后面! <!DOCTYPE html> <html lang="en"&g ...

  7. memory leak at strcore.cpp

    最近使用CString出现了内存泄露,后来发现是CString.GetBuffer之后没有ReleaseBuffer.

  8. gcc工具链简述

    工具链软件包括BINUTILS.GCC.GLIBC.GDB等. BINUTILS是二进制程序处理工具,包括链接器.汇编器等目标程序处理的工具. GCC(GNU Compiler Collection) ...

  9. linux input输入子系统应用分析

    输入设备(如按键.键盘.触摸屏.鼠标等)是典型的字符设备,其一般的工作机理是底层在按键.触摸等动作发送时产生一个中断(或驱动通过timer定时查询),然后CPU通过SPI.I2 C或外部存储器总线读取 ...

  10. [ArcEngine]Geotransformation地理变换

    Geotransformation 地理变换 The Abridged Molodensky transformation is a three parameter transformation三参 ...