我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#枚举类型与位域枚举Enum

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#枚举类型与位域枚举Enum

一、概述

定义一个值类型,其中包含固定值集合。枚举类型变量可以是此集合中的任意一个或多个值。

枚举使用enum关键字来声明,与类同级。

枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。

二、常数枚举

1、定义枚举类型

显式指定枚举的底层数据类型,如果没有明确指定底层数据类型则默认的数据类型是int类型。

enum sex : byte  //显示指定枚举的底层数据类型
{
    male,
    female,  //此逗号可以省略
};        //此分号可以省略

显式设置枚举的成员常量值,默认是从0开始,逐个递增的。但是以下例子却设置成了1,2,3,40,1。而且成员值可以一样的。

void Main()
{
    Console.WriteLine((int)Week.Monday);  //获取值
}

enum Week
{
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Sunday = 0,
    Everyday = 1  //成员的值可以设置成一样的,但是成员不行
}

2、声明枚举变量并初始化

Color myColor=Color.White;
Color myColor=(Color)1;//由值转成枚举成员
Color myColor=(Color)Enum.Parse(typeof(Color), "White"); //将字符串解析成枚举成员

3、枚举变量的使用

Color myColor = Color.White;
string Name = myColor.ToString();
int intName = (int)myColor;//或Convert.ToInt32(myColor)
string Name1 = Enum.GetName(typeof(Color), 1); //由值获取名

4、循环枚举

Dictionary<string, int> Colorlist = new Dictionary<string, int>();
string[] keys = Enum.GetNames(typeof(Color));
Array values = Enum.GetValues(typeof(Color));

for (int i = 0; i < keys.Length; i++)
{
    Colorlist.Add(keys[i], (int)values.GetValue(i));
}

应用:

//填充comboBox
comboBox1.DataSource = Enum.GetValues(typeof(Color));
Color value = (Color)comboBox1.SelectedValue;

//Grid的列数据
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "My Enum Column";
col.DataSource = Enum.GetValues(typeof(Color));
col.ValueType = typeof(Color);
dataGridView1.Columns.Add(col);

三、位域枚举

位域通常用于由可组合出现的元素组成的列表,位域设计为通过按位“或”运算组合来生成未命名的值,而枚举常数则不是。
位域通常用 2 的幂(即 1、2、4、8 、16等2的几次方)定义枚举常量。这意味着组合的枚举常量中的各个标志都不重叠。

1、定义枚举类型

[Flags] //Flags属性表示此枚举为位域枚举
enum Color
{
    None = 0,
    Red = 1,
    White = 2,
    Blue = 4,
    Black = 8
}

2、声明枚举变量并初始化

Color myColor=Color.Red | Color.White|Color.Blue;//”|”表示相并
Color myColor = (Color)3;//由值转成枚举成员,Red, White
Color myColor = (Color)Enum.Parse(typeof(Color), "White,Blue"); //将字符串解析成枚举成员,White, Blue

3、枚举变量的使用

Color myColor = Color.Red | Color.White | Color.Blue;
string Name = myColor.ToString();//Red,White,Blue
int intName = (int)myColor;//或Convert.ToInt32(myColor),7

string Name2 = Enum.GetName(typeof(Color), 2);//由值获取名,White

4、位域枚举特殊操作

1、判断枚举变量是否包含在某个或某些枚举项:

if(myColor & Color.Red)==Color.Red){}//”&”表示相交,判断是否包含Color.Red
if(myColor & Color.Red)!=0){}

2、从枚举变量中去除某个或某些枚举项:

myColor=myColor&(~(Color.Red | Color.White ))//”~”表示取反,出去Color.Red | Color.White两项。

或者

myColor=myColor^(Color.Red | Color.White )//”^”表示异或,不同为真,相同为假。

3、判断美剧变量是否等于某个或某些枚举项:

if((myColor | Color.Write)==Color.Write)//判断是否只有白色。

到此这篇关于C#枚举类型与位域枚举Enum的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#枚举类型与位域枚举Enum

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

c++枚举类型enum怎么使用

在C++中,枚举类型(enum)用于定义一组具有离散值的常量。它可以用来提高代码的可读性和可维护性。以下是使用枚举类型的基本语法:```cppenum 枚举类型名 {枚举值1,枚举值2,...};```其中,枚举类型名是你给枚举类型起的名称
2023-10-10

C#的枚举与位枚举怎么定义

这篇文章主要介绍了C#的枚举与位枚举怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#的枚举与位枚举怎么定义文章都会有所收获,下面我们一起来看看吧。一、枚举的概念C# 枚举(Enum), 枚举类型是用于
2023-06-27

C#枚举类型举例分析

本篇内容主要讲解“C#枚举类型举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型举例分析”吧!C#枚举类型实例演示/* * Created by SharpDevelop.
2023-06-17

mysql枚举类型enum怎么使用

在MySQL中,枚举类型(enum)用于定义一个可以选择的值列表。enum类型可以在创建表时定义,也可以在已存在的表中添加。下面是创建表时定义enum的示例:```sqlCREATE TABLE my_table (id INT,statu
2023-08-30

java枚举enum和Enum类的使用

本文主要介绍了java枚举enum和Enum类的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-03-02

python枚举类型

笔记:一:枚举类型的定义二:枚举类和普通类的区别 1:值不可变 2:具有防止相同标签得功能,不同标签的值可以相同!三:枚举类型、枚举值、枚举名称 1:VIP.YELLOW.Value 获得标签的值 2:VIP.BL
2023-01-30

java枚举类型enum用法有哪些

Java中枚举类型(enum)的用法有以下几种:1. 定义枚举类型:使用关键字"enum"定义枚举类型,并在{}内列出枚举常量。```javaenum Season {SPRING, SUMMER, AUTUMN, WINTER}```2.
2023-08-30

C#枚举类型怎么用

这篇文章主要为大家展示了“C#枚举类型怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#枚举类型怎么用”这篇文章吧。C#枚举类型使用的时候需要掌握的有哪些方面呢?首先我们来看看一个例子:p
2023-06-17

C#枚举类型的语法

本篇内容主要讲解“C#枚举类型的语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#枚举类型的语法”吧!C#枚举类型语法是什么呢?让我看看下面的讲解:/*C#枚举 *當你想讓一組數字代表特定
2023-06-17

java枚举enum和Enum类如何使用

这篇文章主要介绍“java枚举enum和Enum类如何使用”,在日常操作中,相信很多人在java枚举enum和Enum类如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java枚举enum和Enum类如
2023-07-05

C#枚举类型的应用

这篇文章主要讲解了“C#枚举类型的应用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#枚举类型的应用”吧!C#枚举类型应用是怎么样的呢?首先我们来看看几个问题:◆C#枚举类型与基础类型的转
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录