关于重构之Switch的处理
时间:2011-01-03 来源:wangyong969
例: public class Fun{
public void IFNumberid(int flag)
{
switch (flag)
{
case 1:
Console.WriteLine("优秀");
break;
case 2:
Console.WriteLine("良好");
break;
case 3:
Console.WriteLine("一般");
break;
case 4:
Console.WriteLine("不及格");
break;
default:
Console.WriteLine("");
break;
}
}
}
以上实例,其实运行时并不会报任何的错误,而且计算机也能认识,但是我想问一下,如果我后面还有很多的switch,是不是大家得一直加case,慢慢是不是会变得越来越长呢,还是直接先来看重构后的代码吧
public class Fun{
public void IFNumberid(int flag)
{
string[] arryString={"","优秀","良好","一般","不及格"};
Console.WriteLine(arryString[flag]);
}
}
看看之前的代码和现在的代码,是不是有了很大的改进呢!行数从十多行,缩短到了几行,是不是更加好读了呢!以上实例仅仅是在switch中 case语句是连续的数字情况之下,当然如果不是连续的也有其实办法可以处理( 自己想想。。。),我的建议是在代码中尽量少用switch的就少用,不用的就不用,因为switch越多,你的代码越难读懂,我还是相信一句话,让机器读懂你的代码很容易,让人读懂你的代码才是最重要的,另外如果你还是经常按switch的语法写的话,不妨想想可能还有其他的算法可以替代。
好了,算是一个最简单的重构技巧到此就结束了,在提醒一句,重构不等于重搞,它也跟性能优化一点关系也没有,如果原代码有BUG,那么在代码重构之后,依然存在BUG,