閱讀目錄spa
一:重複的代碼
二:使用委託消除重複代碼
一:重複的代碼
咱們在寫一些方法的時候,會在裏面可能出現異常的地方使用try catch語句,這樣每一個方法都會有try catch語句,這樣就有了壞味道,以下所示,在GetName和GetAge裏面都有try catch語句,這樣就有了重複代碼
code
1 static void Main(string[] args) 2 { 3 GetName(); 4 GetAge(); 5 Console.ReadLine(); 6 } 7 8 private static void GetName() 9 { 10 try 11 { 12 Console.WriteLine("My name is david"); 13 } 14 catch (Exception ex) 15 { 16 17 } 18 19 } 20 21 private static void GetAge() 22 { 23 try 24 { 25 Console.WriteLine("I 30 old years"); 26 } 27 catch (Exception ex) 28 { 29 30 } 31 }
二:使用委託Action消除重複代碼
以下所示,try catch 語句只有一次了,這樣就消除了每一個方法的try catch語句blog
1 static void Main(string[] args) 2 { 3 GetName(); 4 GetAge(); 5 Console.ReadLine(); 6 } 7 8 private static void GetName() 9 { 10 TryExecute(() => 11 { 12 Console.WriteLine("My name is david"); 13 }, 14 "GetName"); 15 } 16 17 private static void GetAge() 18 { 19 TryExecute(() => { 20 Console.WriteLine("I 30 old years"); 21 },"GetAge"); 22 } 23 24 private static void TryExecute(Action action, string methodName) 25 { 26 try 27 { 28 action(); 29 } 30 catch (Exception ex) 31 { 32 Console.WriteLine("MethodName:" + methodName + " Error:" + ex.Message); 33 } 34 }