关于重构之Switch的处理【一】如果是有序的话,如何处理
???? 今天晚上休息,坐在電腦邊,不知道為什么,總感覺心里有很多的想寫下來,可不知道該寫些什么!突然來了靈感,覺得不如就寫點重構相關的什么東西,也回顧一下自己今年一年的歷程,2010年年初的時候,剛到公司,某一個中午的時候,看到部門角落里的一個書架上,堆著滿滿的書,就從其中選了一本《重構 改善既有代碼的設計》一書,翻了起來,因為在這之前自己從來就沒有接觸過重構,也不知道重構是個什么概念,不過當我開始讀這本書的時候,我發現他里面的內容似乎就是我一直苦苦尋找的東西,因為有時候我老是想改自己代碼,可都不知道從何如手,他里面提到的方法,真的是都指到了代碼為什么難讀,難理解的點子上。所以這里,就先說一下,我在處理switch的時候,用的一些方法吧
??? 例:? 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,
轉載于:https://www.cnblogs.com/wangyong969/archive/2011/01/03/1925068.html
總結
以上是生活随笔為你收集整理的关于重构之Switch的处理【一】如果是有序的话,如何处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烟台。。pic
- 下一篇: WCF 第八章 安全