C# ref和out的區別


一、ref(引用型參數)和out(輸出型參數)的區別

1、使用ref型參數時,傳入的參數必須先被初始化,out型參數,必須在方法中對其完成初始化。

2、使用ref和out時,在方法的參數和執行方法時,都要加Ref或Out關鍵字,以滿足匹配。

3、out適合用在需要retrun多個返回值的地方,而ref則用在需要被調用的方法修改調用者的引用的時候。

4、ref傳進去的參數在函數內部可以直接使用,而out不可。

5、系統對ref的限制是更少一些的。

6、若要使用 ref 參數,必須將參數作為 ref 參數顯式傳遞到方法,ref 參數的值被傳遞到 ref 參數。

7、當希望方法返回多個值時,聲明 out 方法非常有用;使用 out 參數的方法仍然可以返回一個值。

8、ref 將值類型強制按引用類型進行傳遞

二、代碼舉例

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5 
 6             T t = new T();
 7             t.num = 5;
 8             ChangeT(ref t);
 9             Console.WriteLine(t.num);
10             string str;
11             string result;
12             result = Handle(out str);
13             Console.WriteLine(str);
14             Console.WriteLine(result);
15         }
16 
17         static string Handle(out string s)
18         {
19             s = "hello";
20             return "ok";
21         }
22 
23         static void ChangeT(ref T t)
24         {
25             t.num++;
26         }
27     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM