类之间传递参数调用方法时,当参数不同是,可以考虑用枚举做参数,被调用类中用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