C# 枚举类型 enum (一)
1.枚举使用enum关键字来声明,与类同级。枚举可以和类并列也可以
写在类里面,不能写在方法里。
2.枚举是值类型,隐式继承自System.Enum,不能手动修改。
System.Enum本身是引用类型,继承自 System.ValueType。
3.·枚举本身一般不加访问修饰符,要加的话只能是internal
或public;
·枚举都是隐式密封的(sealed),不允许作为基类派生子类。
4.枚举里面的成员只能是默认公共的静态的(public、static),不能
有访问修饰符;
5.·每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素
的默认基础类型为 int。
·默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次
递增 1。
·枚举数可以具有重写默认值的初始值设定项。但是,强烈建议枚
举包含一个值为 0 的常量。
·枚举元素不可以重复,枚举元素的值可以重复。
·枚举数的名称中不能包含空白。
6.最后一个元素后的逗号可有可无。枚举最后的冒号可有可无。
7.基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型
到整型的转换需要用显式类型转换来完成。
详情看下面代码:
namespace EnumTest01
{
class Program
{
static void Main(string[] args)
{
//3.-----------------------------------------------------------------------------------------------------
//***基础类型指定为每个枚举数分配的存储大小。但是,从 enum 类型到整型的转换需要用显式类型转换来完成。
int a = (int)Days1.Fri;
Console.WriteLine(a); //打印6
Console.WriteLine(Days1.Fri); //打印Fri Console.ReadKey();
} //4.-------------------------------------------------------------------------------------------------
//***枚举可以和类并列也可以写在类里面,不能写在方法里。
enum A : byte
{ }
} //1.--------------------------------------------------------------------------------------------- //***枚举本身一般不加访问修饰符,要加的话只能是internal或public.
enum Animal //此处可以加访问修饰符internal或者public。
{
dog = , //枚举里面的成员是默认公共的,不能有其他修饰符。
cat = ,
pig = ,
//pig = 0
} //***枚举都是隐式密封的,不允许作为基类派生子类。
//enum M : Animal { } //这里会报错,因为枚举不能作为基类去派生子类。 //***枚举里面的成员只能是默认公共的静态的,默认为Int32类型,不能有访问修饰符。 //2.--------------------------------------------------------------------------------------------- //***每种枚举类型都有基础类型,该类型可以是任何整型, 枚举元素的默认基础类型为 int.
//byte的位置可以写: byte、sbyte、short、ushort、int、uint、long、ulong。不写的话默认为int.
enum A : byte
{ } //***默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。例如:
enum Days1 { Sat, Sun, Mon, Tue, Wed, Thu, Fri };
//在 Days1 枚举中,Sat 为 0,Sun 为 1,Mon 为 2,依此类推。枚举数可以具有重写默认值的初始值设定项。例如:
enum Days2 { Sat = , Sun, Mon, Tue, Wed, Thu, Fri };
//在 Days2 枚举中,强制元素序列从 1 而不是 0 开始, Sat 为 1,Sun 为 2,Mon 为 3,依此类推。但是,强烈建议枚举包含一个值为 0 的常量。 //***枚举元素不可以重复,枚举元素的值可以重复。
enum Days3
{
Sat = ,
//Sat = 0, //此处会报错,以为已经定义了一个Sat. 枚举成员不能相同,但枚举的值可以相同。
Sun = ,
Mon = ,
Tue,
Wed,
Thu = ,
Fri, //最后一个元素后的逗号可有可无。
}; //枚举最后的这个冒号可有可无。
//在 Days3 枚举中, Tue的值是2,Wed的值是3,Fri的值是11。 //***枚举数的名称中不能包含空白。
}
C# 枚举类型 enum (一)的更多相关文章
- 【转】java枚举类型enum的使用
原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...
- C# 中的枚举类型 enum (属于值类型)
原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...
- 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)
java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...
- 枚举类型enum详解——C语言
enum enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶 ...
- 深入理解Java枚举类型(enum)
https://blog.csdn.net/javazejian/article/details/71333103 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(en ...
- 人生苦短之Python枚举类型enum
枚举类型enum是比较重要的一个数据类型,它是一种数据类型而不是数据结构,我们通常将一组常用的常数声明成枚举类型方便后续的使用.当一个变量有几种可能的取值的时候,我们将它定义为枚举类型.在Python ...
- 全面解读Java中的枚举类型enum的使用
这篇文章主要介绍了Java中的枚举类型enum的使用,开始之前先讲解了枚举的用处,然后还举了枚举在操作数据库时的实例,需要的朋友可以参考下 关于枚举 大多数地方写的枚举都是给一个枚举然后例子就开始sw ...
- Java基础之枚举类型Enum的使用
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...
- 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)
新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...
- Asp.Net 将枚举类型(enum)绑定到ListControl(DropDownList)控件
在开发过程中一些状态的表示使用到枚举类型,那么如何将枚举类型直接绑定到ListControl(DropDownList)是本次的主题,废话不多说了,直接代码: 首先看工具类代码: /// <su ...
随机推荐
- translate 实现元素垂直居中
<div class="demo2"> <span>about me</span> </div> css .demo2{ width ...
- js遍历for,forEach, for in,for of
ECMAScript5(es5)有三种for循环 简单for for in forEach ECMAScript6(es6)新增 for of 简单for for是循环的基础语法,也是最常用的循环结构 ...
- linux strace-跟踪进程的系统调用或是信号产生情况,lstrace-跟踪己丑年调用库函数情况,进程跟踪调试命令
本工具可以用来做大多数排除,比如mount一个NFS,很慢,找不出原因,我们可以使用strace命令来跟中mount这个经常所有的调用过程. strace 命令是一种强大的工具,它能够显示所有由用户空 ...
- linux命令-tar打包和压缩并用
tar在打包的时候进行压缩 支持 gzip bzip2 xz 格式 -z gzip格式 -j bzip2格式 -J xz格式 压缩打包 [root@wangshaojun ~]# tar -zc ...
- JAVAWeb SSH框架 上传文件,如2007的EXCEL
下面的代码是上传EXCEL的代码,其实,就是在上传文件到服务器,代码都差不多,只是接收的文件的类型改一下即可. 1.jsp 用的是struts2 标签 代码: <s:file name=&quo ...
- 115个Java面试题和答案
面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...
- js中Math.round、parseInt、Math.floor和Math.ceil小数取整总结(转)
js中Math.round.parseInt.Math.floor和Math.ceil小数取整总结 Math.round.parseInt.Math.floor和Math.ceil 都可以返回一个整数 ...
- Servlet编程实例 续4
---------------siwuxie095 JSP+Servlet+JDBC 继续完善登录实例,将校验逻辑改为:从数据库中获取用户信息进行校验 数据库准备 在 Navicat for MySQ ...
- 杭电acm 1049题
一道水题..... 大意是一条1inch的虫子在一个n inch的盒子的底部,有足够的能够每一分钟往上爬u inch,但是需要休息一分钟,这期间会往下掉d inch,虫子爬到盒子口即认为结束.要求计算 ...
- c++中placement new
c++中的placement new是::operator new的重载版本,用于在已经分配好的内存上创建对象.这样就可以在用户空间对内存进行操作,减少了对象生成的成本,控制对象的地址从而减少内存碎片 ...