通过委托实现方法数组来代替switch分支语句
在实际应用中经常会有对一个传入的类型进行检测后, 再通过 switch 进行分类处理, 如下:
private void Response(CmdType cmd)
{
switch(cmd):
case CmdType.Hello:
SayHello();
break;
case CmdType.GetTime:
SendTime();
break;
case CmdType.Bye:
SayBye();
break;
case CmdType.None:
NotResponse();
break;
}
可以通过委托简化这些分支. 如下:
delegate void ResponseDelegate(); // 声明委托
ResponseDelegate[] response = new ResponseDelegate // 方法数组
{
Hello = 0,
GetTime,
Bye,
None
};
则 switch 语句可以用如下代替:
response((int)cmd);
如此则不是更加清晰醒目呢.
~做事情贵在坚持~