枚举类型
来源:互联网 发布:淘宝上卖刀具犯法吗 编辑:程序博客网 时间:2024/05/20 08:23
1)它允许使用描述性的名称表示整数值。
2)枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
3)枚举是值类型。
4)枚举都是隐式密封的,不允许作为基类派生子类。
5)枚举类型的成员均为静态。
6)每个枚举成员均具有相关联的常数值。
7)枚举成员不能相同,但枚举的值可以相同。
8)枚举最后一个成员的逗号和大括号后面的分号可以省略。
class Program
{
static void Main(string[] args)
{
Console.WriteLine(week.Monday);
Console.WriteLine((int)week.Monday);
Console.WriteLine((int)week.Tuesday);
Console.WriteLine((int)week.Wednesday);
Console.WriteLine((int)week.Thursday);
Console.WriteLine((int)week.Sunday);
Console.WriteLine(Enum.GetName(typeof(Man), 1));//得到2值对应的枚举成员
string[] array1 = Enum.GetNames(typeof(Man));//将枚举类型的成员传入 字符串数组
Console.WriteLine(array1[1]);
Array array2 = Enum.GetValues(typeof(Man));
Console.WriteLine(array2.GetValue(1));
Console.WriteLine("------Enume.GetValues获得枚举项的数组(基类)-----");
Array ary = Enum.GetValues(typeof(Color)); //array是数组的基类, 无法实例化
foreach (int i in ary) //列出枚举项对应的数字
{
Console.WriteLine(i.ToString());
}
Console.WriteLine("------------------------------------------------");
foreach (Color c in ary) //列出枚举项的枚举值
{
Console.WriteLine(c.ToString());
}
Console.WriteLine("------ary.GetValue获得枚举项-----");
//Enumes.GetValues和ary.GetValue获得枚举项
for (int i = 0; i < ary.Length; i++)
{
Console.WriteLine(ary.GetValue(i).ToString()); //可以通过(Color)ary.GetValue(i)获得枚举项的值
}
Console.WriteLine("------Enume.GetName获得枚举项的字符串数组-----");
//Enume.GetNames和Enum.Parse获得枚举项
string[] strary = Enum.GetNames(typeof(Color));
foreach (string s in strary)
{
Console.WriteLine(s);
}
Console.WriteLine("------Enum.Parse获得枚举项-----");
for (int i = 0; i < strary.Length; i++)
{
Console.WriteLine(Enum.Parse(typeof(Color), strary[i]).ToString());
}
Console.ReadKey();
}
enum sex : byte //显示指定枚举的底层数据类型
{
male,
female, //此处逗号可以省略
}; //此处分号可以省略
enum week
{
Monday, //此处不赋值即从0开始
Tuesday,
Wednesday = 3,
Thursday,//此处不赋值将顺延上一个值 值为4
Sunday = 0,
Everyday = 1 //成员的值可以设置成一样的,但是成员不成
}
enum Man
{
刘备 = 1,
关羽 = 2,
张飞 = 3
}
public enum Color
{
red = 0, orange = 1, yellow = 2, green = 4, blue = 5, cyan = 6, purple = 7
}
标志枚举要在顶部加[System.Flags]特性进行声明。而且枚举支持组合运算。
class Program
{
static void Main(string[] args)
{
var man = Week.白 | Week.美; //赋值为101 计算方法001或上100,结果是101
Console.WriteLine((int)man);
if ((man & Week.白) == Week.白) //101 man
{ //001 白 逐位相与,
Console.WriteLine("此人白"); //001 如果结果是白,就可以反推出man包含 白
} else
{
Console.WriteLine("此人黑");
}
Console.ReadKey();
}
}
[System.Flags]
publicenum Week
{ 白 = 1, //001
富 = 2, //010
美 = 4, //100
}
}
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- 枚举类型
- Rest API Design
- Xcode如何拖拽选中文字之后拖拽代码
- maven使用总结(二)
- Java关于多线程你不知道的5件事
- Visual C++防止窗口和控件闪烁的方法
- 枚举类型
- Jsp基础之session
- 以太网网络变压器和中心抽头的作用
- iOS学习之 plist文件的读写
- 怎样理解阻抗匹配?---非常好
- hdu 5418 Victor and World(dp)
- 方格取数
- java 对象(List/Map/Set)转json类
- objective-C编程 面向对象的编程基本概念