CSDN博客

img zjsen

枚举拾遗

发表于2004/6/29 20:50:00  934人阅读


枚举是一种很有意思的构造。在.net中,枚举类型拥着一些很酷的特性.
以下面这个枚举类型为例:
enum AccessRight:int //某种资源的访问权限
{
 Read=1,   //读 十六进制为0x01
 Write=2,  //写 十六进制为0x02
 Delete=4  //删除 十六进制为0x04
}
在.net中,我们可以:
AccessRight right=AccessRight.Read;

//获取枚举变量right的值的十进制表示
string s1=right.ToString("D");

//获取枚举变量right的值的十六进制表示
string s2=right.ToString("X");

//获取一个枚举变量right的枚举名,在这里就是Read
string s3=right.ToString("G");

如果你觉得上面那句赋值语句:(AccessRight right=AccessRight.Read;)不够灵活,
还可以这样:

//使用枚举名来获取一个枚举
AccessRight right=(AccessRight)System.Enum.Parse(typeof(AccessRight),"Read");

//也可以用枚举值来获取一个枚举
AccessRight right=(AccessRight)System.Enum.Parse(typeof(AccessRight),"1");

另外,你还可以遍历一个枚举类型
Foreach(AccessRight right in (AccessRight[])System.Enum.GetValues(typeof(AccessRight)) ){}
最后,还可以对枚举进行位算法
AccessRight right=AccessRight.Read|AccessRight.Write;
string ss=right.Tostring("F");
那么ss将会是"read,write"

0 0

相关博文

我的热门文章

img
取 消
img