C#中的枚举类型(enum type)
ylbtech 原文 C#中的枚举类型(enum type)
概念
enum Color
{
Red,
Green,
Blue
}
声明一个名为 Color 的枚举类型,该类型具有三个成员:Red、Green 和 Blue。
枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型。枚举声明以关键字 enum 开始,然后定义该枚举类型的名称、可访问性、基础类型和成员。具体格式:
修饰词(new、public、protected、internal、private)enum 枚举类型名:整数类型
{
enum-member-declarations,
enum-member-declaration
}
测试例

using System; namespace ConsoleApplication1
{
enum Color
{
Red,
Green,
Blue
}
class EnumTypeExample
{
static void PrintColor(Color color)
{
switch (color)
{
case Color.Red:
Console.WriteLine("Red");
break;
case Color.Green:
Console.WriteLine("Green");
break;
case Color.Blue:
Console.WriteLine("Blue");
break;
default:
Console.WriteLine("Unknown color");
break;
}
}
static void Main(string[] args)
{
Color c = Color.Red;
PrintColor(c);
PrintColor(Color.Blue);
}
}
}
//Execation Result
Red
Blue
请按任意键继续. . .
赋值
一个枚举的关联值或隐式地、或显示地被赋值。如果枚举成员的声明中具有 constant-expression 初始值设定项,则该常量表达式的值(它隐式转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明不具有初始值设定项,则它的关联值按下面规则隐式地设置:
如果枚举成员是在枚举类型中声明的第一个枚举成员,则它的关联值为零。否则,枚举成员的关联值是通过将前一个枚举成员(按照文本顺序)的关联值加 1 得到的。这样增加后的值必须在该基础类型可表示的值范围内;否则,会出现编译时错误。有关枚举类型成员关联值赋值案例,参考下例:
using System; namespace Test
{
public enum Day : uint //如果不设置数据类型,默认为 int
{ Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat,Sun}
class EnumType
{
public static void Main(string[] args)
{
Console.WriteLine(ChooseDay(Day.Sun));
Console.WriteLine(ChooseDay(Day.Mon));
}
static string ChooseDay(Day d)
{
string tmp = string.Empty;
switch (d)
{
case Day.Mon:
tmp = string.Format("你选择一周中的第{0}天(即周一),工作",(uint)d);
break;
case Day.Tue:
tmp = string.Format("你选择一周中的第{0}天(即周二),工作", (uint)d);
break;
case Day.Wed:
tmp = string.Format("你选择一周中的第{0}天(即周三),工作", (uint)d);
break;
case Day.Thu:
tmp = string.Format("你选择一周中的第{0}天(即周四),工作", (uint)d);
break;
case Day.Fri:
tmp = string.Format("你选择一周中的第{0}天(即周五),工作", (uint)d);
break;
case Day.Sat:
tmp = string.Format("你选择一周中的第{0}天(即周六),休息", (uint)d);
break;
case Day.Sun:
tmp = string.Format("你选择一周中的第{0}天(即周日),休息", (uint)d);
break;
default:
tmp = "不合法";
break;
}
return tmp;
}
}
}
//Execation Result
你选择一周中的第7天(即周日),休息
你选择一周中的第1天(即周一),工作
请按任意键继续. . .
C#中的枚举类型(enum type)的更多相关文章
- C# 中的枚举类型 enum (属于值类型)
原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...
- 全面解读Java中的枚举类型enum的使用
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...
- C#中的枚举类型enum用法
定义一个简单的枚举类型: enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri}; //这时候 Days.Sat = 0 ,后面依 ...
- 【转】掌握java枚举类型(enum type)
原文网址:http://iaiai.iteye.com/blog/1843553 1 背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...
- 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)
新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...
- Java中的枚举类型详解
枚举类型介绍 枚举类型(Enumerated Type) 很早就出现在编程语言中,它被用来将一组类似的值包含到一种类型当中.而这种枚举类型的名称则会被定义成独一无二的类型描述符,在这一点上和常量的定义 ...
- 使用代码段遍历,枚举类型Enum
最近项目中定义了一些枚举类型,需要将枚举的键值传给前端,用于制作下拉菜单. 1.首先定义了枚举类型 public enum 请假类型 : int { 病假 = 1, 事假 = 2, 婚假 = 3, 产 ...
- Python 中的枚举类型~转
Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...
- 【转】java枚举类型enum的使用
原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...
随机推荐
- sublime 支持PHP语法提示
下载插件phpcs>> https://github.com/benmatselby/sublime-phpcs 解压后修改文件夹名字为:Phpcs 把文件夹放到packages目录下 c ...
- Android TabHost中Activity之间传递数据
例子1: TabHost tabhost = (TabHost) findViewById(android.R.id.tabhost); tabhost.setup(this.getLocalActi ...
- Linux之守护进程
一.守护进程概述 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进 程.为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一 ...
- dojo 总结
对以前项目中用到的dojo框架进行一个框架式的总结,以备参考学习. 主要组成... 1 开发注意... 3 Dojo代码约定... 3 Dojo形式的脚本库... 4 Dojo Build. 4 Do ...
- 如何实现上下左右键盘控制焦点使之落在相邻文本框或下拉框中-Web开发/JavaScript
我用jquery只实现了文本框的移动(暂时上下移动等同于左右移动) $(function () { var cols = 1;//按一下跳几个控件 var obj = $("input[id ...
- ubuntu下启动和关闭tomcat的简单方法
在ubuntu下面,我们安装tomcat可以有两种方式[1]用aptitude安装aptitude install tomcat6 [2]免安装版从apache tomcat 网站下载apache-t ...
- jsp+servlet+jquery 用jquery uploadify最新版本实现多文件上传
//这是script代码 <link rel="stylesheet" type="text/css" href="uploadify/uplo ...
- excel跨表数据链接
按=,然后选择第二个页签下某个数据. 去掉$号,就可以下拉数据
- HDU 4726 Kia's Calculation(贪心构造)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4726 题意:给出两个n位的数字,均无前缀0.重新排列两个数字中的各个数,重新排列后也无前缀0.得到的两 ...
- 【HDOJ】5657 CA Loves Math
1. 题目描述对于给定的$a, n, mod, a \in [2,11], n \in [0, 10^9], mod \in [1, 10^9]$求出在$[1, a^n]$内的所有$a$进制下的数并且 ...