C# out ref 用法總結

來源:互聯網
上載者:User

標籤:修改   ocs   關鍵字   har   微軟官方   img   microsoft   com   bubuko   

C#裡面的 out 和ref參數時常會用到,但對它們的區別比較模糊。所以總結一下。下面是測試代碼:

 1 public void Start() 2     { 3         //outSum沒必要賦值,賦值了也完全沒用。 4         //如果AddByOut函數內部直接使用out對應的參數,會報錯:使用了未被賦值的 out 參數a 5         int outSum = 1; 6         int ov1 = 2; 7         int ov2 = 3; 8         AddByOut(out outSum, ov1, ov2); 9         Console.WriteLine("outSum : " + outSum + "  v1: " + ov1 + "   v2: " + ov2);10 11 12         //refSum 必須賦值13         int refSum = 1;14         int rv1 = 2;15         int rv2 = 3;16         //如果refSum沒有賦值,這裡會報錯:使用了未賦值的局部變數 refSum17         AddByRef(ref refSum, rv1, rv2);18         Console.WriteLine("refSum : " + refSum + "  v1: " + rv1 + "   v2: " + rv2);19     }20 21     public void AddByOut(out int a, int b, int c)22     {23         //a = a + b + c;// a 未被賦值,不能直接使用,即使是調用的地方 out對應的參數初始化也沒用24         a = b + c;25     }26 27     public void AddByRef(ref int a, int b, int c)28     {29         a = a + b + c; // 可以直接使用a 30     }

測試結果:

 

總結:   1、調用帶ref關鍵字的函數,必須對 ref 對應的參數賦值;而out關鍵字不需要。

    2、帶ref 關鍵字的函數內部可以直接使用 ref 對應的參數;out 關鍵字的函數,必須在函數內部對out對應的參數賦值後才能使用。

    3、兩個關鍵字都能使實值型別按參考型別使用,即修改了函數外部申明的變數

 

註:更多專業介紹請參考微軟官方文檔

out 參數修飾符(C# 參考)  https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/out-parameter-modifier

ref(C# 參考)                     https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/ref

C# out ref 用法總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.