一、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 }