标签:fine .com write tostring -- 转换 logs 混合 img
声明一个枚举:
public enum Week
{
one = 1,
two = 2,
three
}
反编译
我们可以看到,我们创建的枚举自动继承自System.Enum,那么Enum又是怎么样的呢?
可以看到Enum是一个抽象类,它继承自ValueType但它又不是一个值类型,所以它有点特殊
那么枚举中到底可以有哪些类型呢?
通过查看源代码我们看到了一个ValuesAndNames这个类,所以说,只要是不大于ulong的整数都可以作为值
既然我们知道了怎么声明,接下来就是如何使用了以及转换
掌握了上面的基本也就掌握了枚举,当然如果你先判断一个值是否在枚举中,列举枚举的值该怎么办呢?
这时候我们就需要Enum类来帮助我们了
判断一个值是否在枚举中
static void Main(string[] args)
{
Console.WriteLine(Enum.IsDefined(typeof(Week),1));//true
Console.Read();
}
列举值:
foreach (var item in Enum.GetNames(typeof(Week)))
{
Console.WriteLine(item);
}
当然上面的枚举有时不够用怎么办,假如我有一个颜色的枚举,红,黄,白假如红和黄混合就是红黄色0-0,那么我们是否需要在建立一个枚举值呢?
答案可以是需要,也可以不需要,我们可以使用位枚举
[Flags] public enum Week { hong = 0x1, huang = 0x10 }
static void Main(string[] args) { Week w = Week.hong | Week.huang; Console.WriteLine(w.ToString()); Console.Read(); }
那如果要判断一个值是否在枚举中呢?
Week w = Week.hong | Week.huang;
Console.WriteLine((w&Week.hong)!=0);
标签:fine .com write tostring -- 转换 logs 混合 img
原文地址:http://www.cnblogs.com/student-note/p/6825134.html