包含在try中的return返回後,仍然會執行finally中的代碼

比如下面代碼:

using System;
class Class1
{
 [STAThread]
 static void Main(string[] args)
 {
  int m = add(1,2);
  Console.WriteLine(m);
  Console.ReadLine();
 }
 private static int add(int i,int j)
 {
  try
  {
   Console.WriteLine("haha1");
   return i + j;
   Console.WriteLine("haha2");
  }
  finally
  {
   Console.WriteLine("haha3");
  }
 }
}

執行的結果是:
haha1
haha3
3

這樣如果我們一個函數中,有多個地方都要返回,我們就可以統一把資源的釋放放在finally中完成。而不用再每一個return前都釋放。

發佈了76 篇原創文章 · 獲贊 1 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章