程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 我所不了解的try{ return }finally{}中的return!,finallyreturn

我所不了解的try{ return }finally{}中的return!,finallyreturn

編輯:C#入門知識

我所不了解的try{ return }finally{}中的return!,finallyreturn


背景

  • 四月初一篇文章《你真的了解try{ return }finally{}中的return?》引起了大家的關注,本文介紹了try、finally同時操作一個數據所經歷的過程。

  • 但是因為作者用值類型作為舉例類型,我心裡就難免懷疑它對引用類型的操作是怎麼樣的,自己測試代碼,還真的出現了問題,我自己無法解決。希望大神給我點提示。


  • 代碼

    class Program
        {
            static void Main(string[] args)
            {
                Program t = new Program();
                int y = t.aaa();
                List<string> list = t.GetList();
    
                Console.ReadLine();
            }
    
            public int aaa()
            {
                int x = 1;
    
                try
                {
                    return ++x;
                }
                catch (Exception e)
                {
    
                }
                finally
                {
                    ++x;
                }
                return x;
            }
    
            public List<string> GetList()
            {
                var list = new List<string>() { "aaa" };
                try
                {
                    list.Add("bbb");
                    return list;
                }
                catch (Exception)
                {
    
                }
                finally
                {
                    list.Add("ccc");
                }
                return list;
            }
        }

    疑問

    如果按照原作者的邏輯,GetList()這個方法返回的應該是包含“aaa”,“bbb”兩個字符串的list,但是結果卻返回了“aaa”“bbb”“ccc”三個數據的list,而且最變態的是,如果我將這個方法改為返回list.Count,返回的結果是2,希望大神能幫我解釋一下原因?


  •  

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved