Enum用法总结编程经验 2007-11-30 15:47:27 阅读3477 评论0 字号:大中小 订阅 1、关于enum的定义
2、符号名和常数值的互相转换 Fabric fab = Fabric.Cotton; int fabNum = (int)fab;//转换为常数值。必须使用强制转换。 Fabric fabString = (Fabric)1;//常数值转换成符号名。如果使用ToStr string fabType = fab.ToString();//显示符号名 string fabVal = fab.ToString ("D");//显示常数值 3、获得所有符号名的方法(具体参见Enum类) public enum MyFamily { YANGZHIPING = 1, GUANGUIQIN = 2, YANGHAORAN = 4, LIWEI = 8, GUANGUIZHI = 16, LISIWEN = 32, LISIHUA = 64, } foreach (string s in Enum.GetNames(typeof(MyFamily))) { Console.WriteLine(s); } 4、将枚举作为位标志来处理
例一: Fabric fab = Fabric.Cotton | Fabric.Rayon | Fabric.Silk; Console.WriteLine("MyFabric = {0}", fab);//输出:Fabric.Cotton | Fabric.Rayon | Fabric.Silk;
5、枚举作为函数参数。经常和switch结合起来使用。下面举例 public static double GetPrice(Fabric fab) { switch (fab) { case Fabric.Cotton: return (3.55); case Fabric.Silk: return (5.65); case Fabric.Wool: return (4.05); case Fabric.Rayon: return (3.20); case Fabric.Other: return (2.50); default: return (0.0); } } 6、上面三点一个完整的例子 //1、enum的定义 public enum Fabric : short { Cotton = 1, Silk = 2, Wool = 3, Rayon = 8, Other = 128 } //将枚举作为参数传递 public static double GetPrice(Fabric fab) { switch (fab) { case Fabric.Cotton: return (3.55); case Fabric.Silk : return (5.65); case Fabric.Wool: return (4.05); case Fabric.Rayon: return (3.20); case Fabric.Other: return (2.50); default: return (0.0); } } public static void Main() { Fabric fab = Fabric.Cotton; int fabNum = (int)fab; string fabType = fab.ToString(); string fabVal = fab.ToString ("D"); double cost = GetPrice(fab); Console.WriteLine("fabNum = {0}\nfabType = {1}\nfabVal = {2}\n", fabNum, fabType, fabVal); Console.WriteLine("cost = {0}", cost); } 7、Enum类的使用 Enum.IsDefinde、Enum.Parse两种方法经常一起使用,来确定一个值或符号是否是一个枚举的成员,然后创建一个实例。Enum.GetName打印出一个成员的值;Enum public enum MyFamily { YANGZHIPING = 1, GUANGUIQIN = 2, YANGHAORAN = 4, LIWEI = 8, GUANGUIZHI = 16, LISIWEN = 32, LISIHUA = 64, } string s = "YANGHAORAN"; if (Enum.IsDefined(typeof(MyFamily), s)) { MyFamily f = (MyFamily)Enum.Parse(typeof(MyFamily), s); GetMyFamily(f); Console.WriteLine("The name is:" + Enum. GetName(typeof(MyFamily), 2)); string[] sa = Enum.GetNames(typeof(MyFamily)); foreach (string ss in sa) { Console.WriteLine(ss); } } |
|
来自: X-O > 《高级语言c ,java》