我们知道在默认情况下,第一个枚举数的值为0,后面每个枚举数的值一次加1.

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

  我们也可以用初始值来重写默认值。

enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

  这样元素的序列就从1开始而不是0。

  每种枚举类型都有基础类型,该类型可以是除了char以外的任何整形。

enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

  准许使用的枚举类型有 byte、sbyte、short、ushort、int、uint、long 或 ulong。

接着我们来讲本节的中单,在Enum上声明FlagsAttribute特性,他能让枚举能参与二进制的与或运算。

具体我们来看代码:

sing UnityEngine;
using System.Collections;
using System;
[Flags]
public enum LogLevel1
{ NONE = 0, DEBUG = 1, INFO = 2, WARNING = 4, ERROR = 8, EXCEPT = 16, CRITICAL = 32,
}
public class test : MonoBehaviour { public static LogLevel1 loglevel = LogLevel1.DEBUG | LogLevel1.INFO | LogLevel1.WARNING | LogLevel1.ERROR | LogLevel1.CRITICAL | LogLevel1.EXCEPT;
// Use this for initialization
void Start () {
print(loglevel);//打印LogLevel1.DEBUG | LogLevel1.INFO | LogLevel1.WARNING | LogLevel1.ERROR | LogLevel1.CRITICAL | LogLevel1.EXCEPT全部枚举
print(loglevel & LogLevel1.DEBUG);//打印LogLevel1.DEBUG枚举
if (LogLevel1.DEBUG == (loglevel & LogLevel1.DEBUG))
{
print(loglevel);//还是打印全部枚举类型
          }
} // Update is called once per frame
void Update () { }
}

  这里我是在Unity里面测试的,可以看到|和&的位运算符可以操作枚举类型,并且发现if (LogLevel1.DEBUG == (loglevel & LogLevel1.DEBUG))这句代码的作用是

判断enum里面是否包含debug这个枚举

C#之Enum中的Flag的更多相关文章

  1. 在WCF中使用Flag Enumerations

      请看MSDN示例: [DataContract][Flags] public enum CarFeatures {     None = 0,     [EnumMember]     AirCo ...

  2. Android源码中的FLAG为何使用16进制

    1.在阅读源码的时候经常发现有一些标志属性使用一些位操作来判断是否具有该标志,增加标志或者去除标志. 比如View.java中的 /** * This view does not want keyst ...

  3. (转)JavaMail中的Flag(邮件状态)

    本文转载自:http://blog.csdn.net/chjttony/article/details/6005594 标记邮件就是把邮件标记为已读,删除等操作,需要使用Flags类,它mail.ja ...

  4. .Net反射-两种方式获取Enum中的值

    public enum EJobType { 客服 = , 业务员 = , 财务 = , 经理 = } Type jobType = typeof(EJobType); 方式1: Array enum ...

  5. springmvc中select可以绑定enum中所有数据的方法

    public enum States { AK("AK"), AL("AL"), AR("AR"), AZ("AZ"), ...

  6. 位运算和enum中的位运算

    1.位逻辑非运算 ~ 位逻辑非运算是单目的,只有一个运算对象.位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1:如果某一位等于1,就将其转变为0. 比如,对二进制的100 ...

  7. [Swift通天遁地]一、超级工具-(1)动态标签:给UILabel文字中的Flag和url添加点击事件

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  8. nginx中rewrite flag

    rewrite  正则表达式  新URI  [flag]; [flag] 选项用于调控重写的行为,它的取值可能是: last:重写完成后,会停止继续处理当前区块所有属于ngx_http_rewrite ...

  9. MYSQL中 ENUM 类型

    MYSQL中 ENUM 类型的详细解释 ENUM类型 ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举. 在下列某些情况下,值也可以是空串(&quo ...

随机推荐

  1. ubuntu 10.04打开错误

    打开ubuntu时,出现的错误如下: Invalid configuration file. File "E:\Ubuntu12.04.vmwarevm\Ubuntu12.04.vmx&qu ...

  2. 6:django 通用视图

    上一节我们介绍了django视图函数里面几个常用的函数,这节我们来看一下django为我们提供的一些通用视图吧 在最后面有我自己的示例代码,html部分太多了就不贴了 “简单”视图函数 正如名字所言, ...

  3. HDFS初识

    参看原文 [Hadoop]HDFS的运行原理 参看原文 还不懂HDFS的工作原理?快来扫扫盲 简介 HDFS(Hadoop Distributed File System) Hadoop分布式文件系统 ...

  4. redis之(八)redis的有序集合类型的命令

    [一]增加元素 --->命令:ZADD key score member [score member] --->向有序集合放入一个分数为score的member元素 --->元素存在 ...

  5. GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

    GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置 前言 此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客.poem_of_ ...

  6. JQuery 实现 锚点跳转

    $('.nav-jump').click(function() { $('html,body').animate( { scrollTop:$($.attr(this, 'href')).offset ...

  7. linux下用xampp安装php集成环境,并修改各自端口号

    一:安装xampp 1.到官网下载linux版xampp    https://www.apachefriends.org/zh_cn/index.html 下载后为:xampp-linux-x64- ...

  8. iis频繁奔溃,求大神帮忙分析dump

    直接上图了 上图三个错误最近频繁出现,出现一次iis就奔溃一次,抓取的dump分析后如下: Couldn't resolve error at 'ls' :> !analyze -v ***** ...

  9. html和url两种录制方式

    在跟使用Loadrunner工具使用者交流的过程中,经常有人提到这个问题,基于HTML(HyperText Markup Language 超文本置标语言)模式录制 与基于URL(Uniform Re ...

  10. Nginx的基本理论

    Nginx是什么? 1).Nginx 就是一台反向代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端.比如GoAgent,FQ神器. 一个 ...