C# 枚举类使用
作者:网络转载 发布时间:[ 2013/8/6 10:49:57 ] 推荐标签:
那么被赋值的成员的值是你所指定的值。当然,无论你是否手动指定枚举成员的值,递增步长都不会变,总是为1。为了测试你是否理解,请说出下面枚举个成员的值以及你的判断理由(请用人脑而不是电脑来运行以下代码):
publicenumDriveType:sbyte
{
CDRom,
Fixed=-2,
Network,
NoRootDirectory=-1,
Ram,
Removable=Network*NoRootDirectory,
Unknown
}
publicenumCustomerKind
{
Normal=90,
Vip=80,
SuperVip=70,
InActive=100
}
publicclassCustomer
{
publicreadonlyCustomerKindKind;
privatedoublem_Payment;
publicdoublePayment
{
returnm_Payment*(int)Kind/100;
}
为枚举CustomerKind的每个成员都赋了一个特定的值,该值其实是顾客购物折扣百分率。而在Customer类中,Payment属性通过强类型转换来获取枚举成员的值(也是购物折扣率),并用于货款计算。从这里可以看出,获取枚举成员的值还可以通过强类型转换方式。
// Code here
}
枚举类型可以强制转换为整数,整数也可以强制转换为枚举类型
Alignment a = (Alignment)1;但这种机制可能使你遇到一些麻烦
public static bool IsAlignment(Alignment a)
{
switch(a)
{
case Alignment.Left:
case Alignment.Center:
case Alignment.Right:
return true;
default:
return false;
}
}
枚举类型转换(解析)成字符串类型
简单的方法是使用System.Enum的public override string ToString(); 或者把枚举类型转换为IConvertible接口,再调用该接口的string ToString(IFormatProvider provider);
static void Main()
{
Alignment a = Alignment.Right;
Console.WriteLine("Alignment is {0}.", a.ToString());
FontStyle fs = FontStyle.Bold | FontStyle.Underline;
Console.WriteLine("FontStyle is {0}.", fs.ToString());
}
手动指定格式参数:Console.WriteLine("Alignment is {0}.", a.ToString("d"));

sales@spasvo.com