详解C#枚举中使用Flags特性
作者:暴躁老砚 发布时间:2023-05-19 04:44:31
标签:C#,枚举,Flags
如果对一个值可以包含多个,那么可以使用枚举,加上Flags。
新建一个Flags枚举类型:
[Flags]
public enum Show
{
A = 0x00000001,
B = 0x00000010,
C = 0x00000100,
D = 0x00001000,
}
合并多个值
合并多个,使用|
Show show = Show.A | Show.B
判断是否存在某个值
一个简单方法是用 HasFlag,但是一个方法是用&
Show show=Show.A | Show.B;
show.HasFlag(Show.A);
//其他
bool 包含 = (show & Show.A)!=0;
去掉一个值
Show show=Show.A | Show.B;
show=show & (~Show.A);
取反一个值
Show show = Show.A | Show.B;
bool 包含 = (show & Show.A)!=0;
if(包含)
{
show=show & (~Show.A);
}
else
{
show=show | Show.A;
}
参考:
C# 位域[flags]
来源:https://www.cnblogs.com/Yan3399/p/16020660.html


猜你喜欢
- 模式介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式。Bridge模式
- import java.io.IOException;import javax.xml.parsers.*;import javax.xml
- 前言项目中时不时遇到查字典表等数据,只需要返回数据,不需要写其他业务,每个字典表可能都需要写一个接口给前端调用,比较麻烦,所以采用下面这种方
- 通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等
- 1、Java数组介绍在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型(Object类型数组除外)。①、数组的声明
- 一. 什么是蓝牙(Bluetooth)?1.1 BuleTooth是目前使用最广泛的无线通信协议1.2 主要针对短距
- 工具栏:就是上面有个好多的快捷按钮的那个栏,比如撤销,上传,下载设置,扳手按钮,等等。目录栏:就是刚刚装的时候,这个会显示,但是不知道怎么关
- /// <summary> /// 导出Ex
- 本文实例为大家分享了Java实现单向链表反转的具体代码,供大家参考,具体内容如下1、实现代码public class LinkedListT
- 这篇文章主要介绍了如何使用Jenkins编译并打包SpringCloud微服务目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有
- 本文主要汇总了在开发过程中,使用List和Dictionary常用的方法,例如增、删、改、查、排序等等各种常用操作。在平时的开发过程中,Li
- 1. 编写索引内容节点解释:settings:配置信息"number_of_replicas": 0 不需要备份(单节点
- C#中的null与SQL中的NULL是不一样的,SQL中的NULL用C#表示出来就是DBNull.Value。注意:SQL参数是不能接受C#
- java编码中经常用到代理,代理分为静态代理和 * 。其中 * 可以实现spring中的aop。一、静态代理:程序运行之前,程序员就要编
- 本文实例讲述了Java泛型定义与用法。分享给大家供大家参考,具体如下:1. 泛型的由来先看如下代码:import java.util.Lis
- java加载properties文件的六种方法总结java加载properties文件的六中基本方式实现java加载properties文件
- java数据结构的堆什么是堆堆指的是使用数组保存完全二叉树结构,以层次遍历的方式放入数组中。如图:注意:堆方式适合于完全二叉树,对于非完全二
- 重写子pagerview的dispatchTouchEvent方法,在返回前添加一句getParent().requestDisallowI
- public class Change{ public static void main(String args[]){ fin
- 本文实例为大家分享了Android自定义View实现滑动回弹的具体代码,供大家参考,具体内容如下前言Android 页面滑动的时候的回弹效果