C# 枚举(Enum)

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。[1]  是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。

在计算机,枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C#枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。

声明枚举的一般语法:

enum <enum_name>
{ enumeration list 
};

其中,

enum_name 指定枚举的类型名称。

enumeration list 是一个用逗号分隔的标识符列表。

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:

enum Days { Sun, Mon, tue, Wed, thu, Fri, Sat };

下面的实例演示了枚举变量的用法:

using System;public class EnumTest
{enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };static void Main(){int x = (int)Day.Sun;int y = (int)Day.Fri;Console.WriteLine("Sun = {0}", x);Console.WriteLine("Fri = {0}", y);}
}

当上面的代码被编译和执行时,它会产生下列结果:

Sun = 0
Fri = 5

System.Enum 类型和枚举约束 System.Enum 类型是所有枚举类型的抽象基类。它提供多种方法来获取有关枚举类型及其值的信息。有关更多信息和示例,请参阅 System.Enum API 参考页。

从 C# 7.3 开始,你可以在基类约束中使用 System.Enum(称为枚举约束),以指定类型参数为枚举类型。所有枚举类型也都满足 struct 约束,此约束用于指定类型参数为不可为 null 的值类型。

对于任何枚举类型,枚举类型与其基础整型类型之间存在显式转换。如果将枚举值转换为其基础类型,则结果为枚举成员的关联整数值。

public enum Season
{Spring,Summer,Autumn,Winter
}public class EnumConversionExample
{public static void Main(){Season a = Season.Autumn;Console.WriteLine($"Integral value of {a} is {(int)a}");  // output: Integral value of Autumn is 2var b = (Season)1;Console.WriteLine(b);  // output: Summervar c = (Season)4;Console.WriteLine(c);  // output: 4}
}

使用 Enum.IsDefined 方法来确定枚举类型是否包含具有特定关联值的枚举成员。

对于任何枚举类型,都存在分别与 System.Enum 类型的装箱和取消装箱相互转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

孙悟空都服输!波士顿动力最新逆天机器人视频,翻筋斗连拿大顶!

全世界只有3.14 %的人关注了青少年数学之旅刚刚&#xff0c;波士顿动力公司在YouTube发布了两段真正震撼的新视频&#xff1a;双足人形机器人Atlas展示倒立、360度翻跟头、旋转的跑酷Demo&#xff1a;More Parkour Atlas。四足机器人Spot的商业化广告宣传片&#xff1a;Spot La…

痛并快乐着

看到访问量不断增加&#xff0c;而且访问过的人数已经超过500人&#xff08;注意不是浏览次数&#xff0c;而是不同的人数&#xff09;&#xff0c;真有成就感。与此同时&#xff0c;申请网易联盟再次失败&#xff0c;决定好好写我自己的blog&#xff0c;不再去管他什么狗屁联盟…

C#实例:datagridview单元格合并

这是替C#微信交流群群友做的一个小实例&#xff0c;目的就是在datagridview选择对应行以后&#xff0c;点击button后获取对应行的ip&#xff0c;并执行相应的操作&#xff0c;其实我觉得这样的话button没必要非放置到datagridview里面的&#xff01;但是为了满足群友的需求&…

NO.106 需求的状态、研发阶段及注意事项。

为什么80%的码农都做不了架构师&#xff1f;>>> 禅道项目管理软件设计的需求有两个字段来跟踪它的变化&#xff0c;一个是需求的状态字段&#xff0c;一个是需求的研发阶段字段&#xff0c;下面来看下这两个字段。 一、需求的状态 需求状态(status)字段&#xff0c…

java实例化泛型_Java让泛型实例化的方法

泛型对象可以实例化吗&#xff1f;不可以&#xff0c;T tnew T()是不可以的&#xff0c;编译器会报错。由于泛型擦除&#xff0c;编译器在编译时无法确定泛型所对应的真实类型解决方法使用反射新建实例Type superclass getClass().getGenericSuperclass();ParameterizedType p…

几种人类设计的永动机,最后一个彻底服了!| 今日最佳

全世界只有3.14 %的人关注了青少年数学之旅众所周知&#xff0c;永动机是违反当前客观科学规律的概念&#xff0c;是永远不能够被制造出来的。下面这些都是人们根据不同原理设计出来的&#xff0c;看一看有什么神奇之处&#xff0c;最后一个是亮点&#xff01;▲达芬奇设计的永…

vista 中php4, php5 共存

由于有些开源PHP产品需要PHP4&#xff0c;因为不得不安装这个版本&#xff0c;如OSC2.1&#xff1b;而有些开源产品则使用PHP5&#xff0c;如wikipedia&#xff0c;因此为了同时开发 PHP4或PHP5的软件&#xff0c;则需要同时安装这两个版本的东西。 安装PHP4使用IIS的具体操作请…

剖析WPF依赖属性

这节来讲一下WPF中的依赖属性 (Dependency Property)。【了解属性和字段】我们知道&#xff0c;属性是面向对象语言中用来封装字段的外衣&#xff0c;它像是字段对外界的桥梁&#xff0c;我们可以通过属性来验证数据的合法性或控制对外的访问性等等。每个属性的背后都有其对应的…

Spring与SpringMVC集成出现的问题

这几天在学习SpringMVC,在与Spring集成时&#xff0c;出现了两个小问题&#xff0c;记录下来&#xff0c;提醒自己&#xff0c;同时如果大家遇到同样问题&#xff0c;能够帮助大家的话&#xff0c;那我就感到幸哉了&#xff01;1&#xff0e;java.lang.NullPointerExceptionSEV…

java drawline_Java Graphics.drawLine方法代码示例

import javax.microedition.lcdui.Graphics; //导入方法依赖的package包/类public void draw(Graphics g) {g.setColor(255, 255, 255);g.fillRect(0, 0, getWidth(), getHeight());g.setColor(200, 200, 200);int baseLineY;if (signal.baseLineY() > 0) {baseLineY (int)…

Active Directory的用户属性说明

Active Directory中User对象属性User Object User Interface Mapping The following tables identify the property pages supplied by the Active Directory Users and Computers snap-in. Each table identifies the user interface elements of the property page and the A…

柳传志与马云绸缪宏观经济“冬天影子”

春江水暖鸭先知。尽管认同中国经济的繁荣将继续保持10~20年&#xff0c;中国商界的领军者和经济学家上周六还是提醒企业必须警惕可能到来的调整。 “我为什么上市&#xff1f;一个很重要的原因&#xff0c;是我在准备‘过冬’。”12月8日&#xff0c;在“2007(第六届)中国企业领…

你在孩子身上偷的懒,终将会变成最大的遗憾

全世界只有3.14 %的人关注了青少年数学之旅我们来看一个非常有趣的统计&#xff1a;2007年—2016年全国高考状元父母职业统计最优秀的孩子大多数出自教师家庭。很家长说&#xff0c;教师有着和孩子一样的寒暑假&#xff0c;有着教书育人的先天优势&#xff0c;我们普通人工作忙…

巧用Environment.UserInteractive 实现开发和生产环境的分开调试部署

概述平常我们在做服务开发的时候&#xff0c;经常是希望本地可以直接调试&#xff1b;在生产环境是以服务允许的&#xff1b;这时候&#xff0c;一般的做法写2段代码&#xff0c;需要什么环境就注释那段代码&#xff0c;这样很麻烦&#xff0c;这时候就可以利用Environment判断…

aggregation java_Elasticsearch Aggregation 多个字段分组统计 Java API实现

现有索引数据&#xff1a;index:schooltype:student---------------------------------------------------{"grade":"1", "class":"1", "name":"xiao 1"}{"grade":"1", "class":&q…

开发们 点广告-赚点BT币

2019独角兽企业重金招聘Python工程师标准>>> http://freebitco.in/?r14320 转载于:https://my.oschina.net/wangtao/blog/180765

Asp.net页面的生命周期

介绍Asp.net是微软.Net战略的一个组成部分。它相对以前的Asp有了很大的发展&#xff0c;引入了许多的新机制。本文就Asp.net页面的生命周期向大家做一个初步的介绍&#xff0c;以期能起到指导大家更好、更灵活地操纵Asp.net的作用。当一个获取网页的请求&#xff08;可能是通过…

太赞了!微软《dotnet中文手册》火了,完整PDF开放下载!

这是微软高级架构师基于最新的.net编写&#xff0c;循序渐进地对.net/C#进行讲解。对于零基础可以作为.net的快速入门教材&#xff0c;对于高级程序员而言&#xff0c;这也是你的进阶之路&#xff0c;今天来了&#xff0c;就是缘份&#xff0c;看到了就送给你&#xff01;资料介…

你穿衣品味还不如AI,这有一款时尚着装网络模型

全世界只有3.14 %的人关注了青少年数学之旅有一件衣服的时候&#xff0c;怎样的小改动可以提升其整体的时尚性&#xff1f;近日 UT 奥斯汀、康奈尔大学、乔治亚理工和 Facebook AI 研究中心的研究者提出了一种名为 Fashon 的模型&#xff0c;用于给一件衣服进行改进&#xff0…

java的安装包下载 百度云_Java开发相关安装包网盘下载链接分享

虚拟机VMWare10软件 网盘链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1dff3m0EBzMegtgRaJFEadQ提取码&#xff1a;8cafCentOS-6.6-x86_64-bin-DVD1.iso 网盘链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/13wIXuoJkza95U-rBs0AUpQ提取码&#xff1a;…