类之间传递参数调用方法时,当参数不同是,可以考虑用枚举做参数,被调用类中用switch……case判断调用枚举public enum BindType{ alarm, phone_location, phone_trace, machine_room, dili, machine_room_info, site, tousu}枚举元素的默认基础类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};枚举数可以具有重写默认值的初始值设定项。例如:enum Days {Sat=100, Sun, Mon, Tue, Wed, Thu, Fri};在此枚举中,强制元素序列从 100 而不是 0 开始。获取枚举值:int x = (int)Days.Sun;
枚举长整型enum Range :long {Max = 2147483648L, Min = 255L};获取枚举值:long x = (long)Range.Max;
枚举也支持string类型,
string tmp="a"; switch (tmp) { case "a": Console.WriteLine("a"); if (1 == 1) { Console.WriteLine("1==1"); } break; case "b": Console.WriteLine("b"); break; }msdn上这样写的:enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常数组成的独特类型。每种枚举类型都有基础类型,该类型可以是除 char 以外的任何整型。枚举元素的默认基础类型为 int。默认情况下,第一个枚举数的值为 0,后面每个枚举数的值依次递增 1。
enum在调用toString()时,结果为其名词的字符串如BindType.phone_trace.toString():"phone_trace"
switch配合枚举使用: BindType tmpType=BindType.phone_trace; switch (tmpType) { case BindType.phone_trace: case BindType.alarm: Console.WriteLine("alarm"); if (1 == 1) { Console.WriteLine("1==1"); } break; case BindType.dili: Console.WriteLine("dili"); break; default: Console.WriteLine("default"); break; }switch语句中可以用枚举实现匹配switch每个case中可以实现多行语句(可以跟if……else if……一样实现匹配,但效率要高(以前总以为只能处理单行,失误失误)),如BindType.alarm另外case中有处理时,记得跟break,否则会报错;没有处理语句时,可以不用break,表示跟下面的处理方式相同
使用例子A类中:public enum BindType{ alarm, phone_location, phone_trace, machine_room, dili, machine_room_info, site, tousu}
B类中使用:public A.BindType bindType;bindType=A.BindType.alarm;console.writeline(bindType.toString())结果为:alarm