C# 枚举的初始化
2017-02-09 10:08
387 查看
3.2 枚举类型(Enum types)的默认值
对于枚举类型(Enum types),.NET会自动将字面值0(literal 0)隐式地转换为对应的枚举类型。
3.2.1 有一个0值成员
如果枚举类型中的某个成员被赋予0值(不要求是第一个成员),那么枚举变量所储存的值就是该成员的值。假定Alignment的成员被赋值如下:
//Code #06
enum Alignment
{
Left = 1,
Center = 0,
Right = 2
}
那么,下面这句
Alignment a = new Alignment();
将等效于
Alignment a = Alignment.Center;
3.2.2 没有0值成员
如果枚举类型中任何一个成员都不为0,例如
// Code #07
enum Alignment
{
Left = 1,
Center = 2,
Right = 3
}
那么
Alignment a = new Alignment();
将等效于
Alignment a = (Alignment)0;
或者
Alignment a = 0;
而此时,枚举变量a所储存的值我们可以称为非预定义枚举(成员)值。
3.2.3 有两个或以上的0值成员
那么,如果枚举类型里存在多于一个成员被赋予0值呢?例如
// Code #08
enum Alignment
{
Left = 0,
Center = 1,
Right = 0
}
你能猜得出下面代码的运行结果吗?
// Code #09
Alignment a = new Alignment();
Console.WriteLine(a.ToString());
从该代码的运行结果中我们可以看到,new把Alignment.Left“许配”给枚举变量a。现在让我们看看下面这段代码:
// Code #10
string a = Enum.GetName(typeof(Alignment), 0);
Console.WriteLine(a.ToString());
http://tech.ddvip.com/2008-10/122481054481924_4.html
相关文章推荐
- 从枚举的初始化说起 [C#]
- 从枚举的初始化说起 [C#]
- C#简短代码枚举文件夹内文件(含子文件夹)
- 一周学会C#(枚举一)
- C#枚举系统安装的所有打印机
- C#对字段的初始化
- C#枚举系统安装的所有打印机
- 浅谈C#中的枚举
- C#枚举局域网网络成员
- 从模拟字符串型的枚举说起 [C#]
- 关于C#数组初始化的效率测试
- 一周学会C#(枚举二)
- 关于C#中枚举打印机
- C#枚举系统安装的所有打印机
- C#锐利体验 第十四讲 枚举
- Enums and Structs in C#(C#里的枚举和结构) (from codeproject)
- 递归枚举排列、组合的C#源码
- 关于C#中字段的初始化
- C#子类与父类的初始化
- C#枚举系统安装的所有打印机