做外贸网络推广网站,wordpress文章关键字替换,微信开发者版是什么意思,wordpress 目录函数枚举
枚举是由程序员定义的类型#xff0c;与类或结构一样。
与结构一样#xff0c;枚举是值类型#xff1a;因此直接存储它们的数据#xff0c;而不是分开存储成引用和数据。枚举只有一种类型的成员#xff1a;命名的整数值常量。 下面的代码展示了一个示例#xff0c…枚举
枚举是由程序员定义的类型与类或结构一样。
与结构一样枚举是值类型因此直接存储它们的数据而不是分开存储成引用和数据。枚举只有一种类型的成员命名的整数值常量。 下面的代码展示了一个示例声明了一个名称为TrafficLight的新枚举类型它含有3个成 贝。注意成员声明列表是逗号分隔的列表在枚举声明中没有分号。
enum TrafficLight
{Green, //逗号分割没有分号Yellow, //逗号分割没有分号Red
}每个枚举类型都有一个底层整数类型默认为int。
每个枚举成员都被赋予一个底层类型的常量值。在默认情况下编译器对第一个成员赋值为0对每一个后续成员赋的值都比前一个成员多1。
例如在TrafficLight类型中编译器把int值0、1和2分别赋值给成员Green、Yellow 和Red。在下面代码的输出中把它们转换成类型int,可以看到底层的成员值。图12-1阐明了 它们在栈中的排列。
enum TrafficLight
{Green, //逗号分割没有分号Yellow, //逗号分割没有分号Red
}TrafficLight t1TrafficLight.Green;
TrafficLight t2TrafficLight.Yellow;
TrafficLight t3TrafficLight.Red;Console.WriteLine(${t1},\t{(int)t1});
Console.WriteLine(${t2},\t{(int)t2});
Console.WriteLine(${t3},\t{(int )t3});可以把枚举值赋给枚举类型变量。例如下面的代码展示了3个TrafficLight类型变量的声 明。注意可以把成员字面量赋给变量或从另一个相同类型的变量复制值。
class Program
{enum TrafficLight{Green, //逗号分割没有分号Yellow, //逗号分割没有分号Red}TrafficLight t1TrafficLight.Green;TrafficLight t2TrafficLight.Yellow;TrafficLight t3TrafficLight.Red;Console.WriteLine(t1);Console.WriteLine(t2);Console.WriteLine(t3);
}这段代码产生以下输出。注意成员名被当作字符串打印。
设置底层类型和显式值
可以把冒号和类型名放在枚举名之后这样就可以使用int以外的整数类型。类型可以是任 何整数类型。所有成员常量都属于枚举的底层类型。
enum TrafficLight:ulong
{...
}成员常量的值可以是底层类型的任何值。要显式地设置一个成员的值在枚举声明中的变量 名之后使用初始化表达式。尽管不能有重复的名称但可以有重复的值如下所示。
enum TrafficLight
{Green10,Yellow15,Red5
}例如图12-2中的代码展示了枚举TrafficLight的两个等价声明。
左边的代码接受默认的类型和编号。右边的代码显式地将底层类型设置为int并将成员设置为与默认值相应的值。