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. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  2. 关于HBase的概述

    1.hbase的特点 ->数据存储量可以达到亿级别数据维持在秒级 ->按列存储的数据库 ->能够存储上百万列 ->hbase的底层存储依赖于HDFS ->如何扩展hbas ...

  3. C++ 编译器内存错误 after Normal block。。。

    解决 after Normal block(#908) at 0x399EC0. CRT detected that the application wrote to memory after end ...

  4. 图解SSL/TLS协议

    本周,CloudFlare宣布,开始提供Keyless服务,即你把网站放到它们的CDN上,不用提供自己的私钥,也能使用SSL加密链接. 我看了CloudFlare的说明(这里和这里),突然意识到这是绝 ...

  5. [LeetCode]题解(python):030-Substring with Concatenation of All Words

    题目来源 https://leetcode.com/problems/substring-with-concatenation-of-all-words/ You are given a string ...

  6. ASP.NET 开发笔记1

    1.GirdView  动态添加列 PostBack 后 模板列中的控件丢失的问题 http://blackboy51.blog.163.com/blog/static/511359122011910 ...

  7. Rails进阶参考

    https://gist.github.com/xdite/4044f3a037de029bc35c From idea to products: - Ideation, wireframes, mo ...

  8. MVC中”从客户端检测到有潜在危险的Request.Form值“的解决方法

    从客户端检测到有潜在危险的Request.Form值: 在webForm中,可以在aspx页面顶部 <%@ Page Language="C#" AutoEventWireu ...

  9. 在CentOS6.5上安装Tomcat7

    Tomcat大本营地址:http://tomcat.apache.org/ 本文使用到的Tomcat7下载地址:http://apache.opencas.org/tomcat/tomcat-7/v7 ...

  10. TermServDevices报错导致服务器死机(远程服务使用者必读)

    事件类型: 错误 事件来源: TermServDevices 事件 ID: 1111 描述:打印机 !!192.168.99.6!HP LaserJet 3050 Series PCL 5e 所需的驱 ...