由枚举类型,记录点滴
前言:
枚举类型,由于不太常用,所以掌握其实并不熟练。然而今天见一枚举题,感觉有点意思,遂记录一下。
解析:
先见代码:
// Description: 演示用枚举,获取枚举中的名称,和对应值
// CopyRight: http://www.cnblogs.com/yangmingming
// Notes: 采用枚举Color,并限定为类型byte
class Program
{
enum Color : byte
{
Red,
Green,
Blue,
Orange
}
static void Main(string[] args)
{
// 获取枚举中名称字符串数组
string[] strName = Enum.GetNames(typeof(Color));
//获取枚举中对应值项
byte[] syteValue =(byte[] ) Enum.GetValues(typeof(Color));
for (int i = 0; i < strName.Length; i++)
Console.WriteLine("{0}",strName [i]);
for (int i = 0; i < syteValue.Length; i++)
Console.WriteLine("{0}",syteValue [i]);
}
}
// CopyRight: http://www.cnblogs.com/yangmingming
// Notes: 采用枚举Color,并限定为类型byte
class Program
{
enum Color : byte
{
Red,
Green,
Blue,
Orange
}
static void Main(string[] args)
{
// 获取枚举中名称字符串数组
string[] strName = Enum.GetNames(typeof(Color));
//获取枚举中对应值项
byte[] syteValue =(byte[] ) Enum.GetValues(typeof(Color));
for (int i = 0; i < strName.Length; i++)
Console.WriteLine("{0}",strName [i]);
for (int i = 0; i < syteValue.Length; i++)
Console.WriteLine("{0}",syteValue [i]);
}
}
顺理成章的,得到调试结果为:
由以上代码,我注意到三点:
1.typeof的应用:这个是为了得到Type类型的对象,在反射环节已经略有了解;
2. Enum.GetValues(typeof(Color))获取枚举各项对应值时,因为是得到Array类型的。然而很意外的是,我居然用byte[]可以实现整体的类型转换!;
3.关于enum和Enum的区别:enum提示为Code Snippet for enum,这同struct定义。而Enum则定义为 Class System.Enum ,可见其是以类来操作的,这样才具有上述得到名称、值的方法;
综述之,对枚举的例子,进一步引出附属知识点,真是一举多得啊,呵呵~