大話設計模式(二 代碼規範、重構)
(續上篇)
大鳥說:“且先不說出題人的意思,單就你現在的代碼,就有很多不足的地方需要改進。比如變數命名,你的命名就是ABCD,變數不帶有任何具體含義,這是非常不規範的;判斷分支,你這樣的寫法,意味著每個條件都要做判斷,等於電腦做了三次無用功;資料輸入有效性判斷等,如果使用者輸入的是字元符號而不是數字怎麼辦。如果除數時,客戶輸入了0怎麼辦。這些都是可以改進的地方。”
“哦,說得沒錯,這個我以前聽老師說過,可是從來沒有在意過,我馬上改,改完再給你看看。”
class Program{ static void Main(string[] args) { try { Console.Write("請輸入數字A:"); string strNumberA = Console.ReadLine(); Console.Write("請選擇運算子號(+、-、*、/):"); string strOperate = Console.ReadLine(); Console.Write("請輸入數字B:"); string strNumberB = Console.ReadLine(); string strResult = ""; switch (strOperate) { case "+": strResult = Convert.ToString(Convert.ToDouble(strNumberA) + Convert.ToDouble(strNumberB)); break; case "-": strResult = Convert.ToString(Convert.ToDouble(strNumberA) - Convert.ToDouble(strNumberB)); break; case "*": strResult = Convert.ToString(Convert.ToDouble(strNumberA) * Convert.ToDouble(strNumberB)); break; case "/": if (strNumberB != "0") strResult = Convert.ToString(Convert.ToDouble(strNumberA) / Convert.ToDouble(strNumberB)); else strResult = "除數不能為0"; break; } Console.WriteLine("結果是:" + strResult); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("您的輸入有錯:" + ex.Message); } }}
大鳥:“吼吼,不錯,不錯,改得很快嗎。至在目前代碼來說,實現計算機是沒有問題了,但這樣寫出的代碼是否合出題人的意思呢。”
小菜:“你的意思是物件導向。”
大鳥:“哈,小菜非小菜也。”
(待續)
出處:http://www.cnblogs.com/cj723/archive/2006/08/30/490094.html