日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#基础加强(7)之ref与out

發(fā)布時間:2024/8/26 C# 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#基础加强(7)之ref与out 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

介紹

給方法傳遞普通參數(shù)時,值類型傳遞的是拷貝的對象,而引用類型傳遞的是對象的引用。它們都不能在函數(shù)內(nèi)部直接修改外部變量的引用(不是修改引用類型的屬性),而使用 ref 或 out 關(guān)鍵字就可以實現(xiàn)。

作用

ref:在方法內(nèi)部修改外部變量的引用。

out:方法內(nèi)部給外部變量初始化,相當(dāng)于一個函數(shù)多個返回值。

注意事項:

  • 使用 ref 修飾參數(shù)時,傳入的參數(shù)必須先被初始化,方法中可以不復(fù)制。而對 out 而言,必須在方法中對其完成初始化,在方法外部不用初始化。
  • 使用 ref 和 out 時,在執(zhí)行方法時,參數(shù)前都需要加上 ref 或 out 關(guān)鍵字。
  • out 適合用在需要 return 多個返回值的地方,而 ref 則用在需要被調(diào)用的方法修改調(diào)用者的引用時。
  • 示例

    例 1:交換兩個變量的值:

    internal class Program {public static void Main(string[] args){int i = 3;int j = 4;Swap(ref i,ref j);Console.WriteLine(i); // 4Console.WriteLine(j); // 3 }public static void Swap<T>(ref T obj1, ref T obj2){object temp = obj1;obj1 = obj2;obj2 = (T) temp;} }

    例 2:自己實現(xiàn)?int.TryParse()?方法:

    internal class Program {public static void Main(string[] args){string numStr1 = "abc";string numStr2 = "342";int result1;int result2;TryParse(numStr1, out result1);TryParse(numStr2, out result2);Console.WriteLine(result1); // -1Console.WriteLine(result2); // 342 }/*** 將字符串轉(zhuǎn)換成一個 int 類型,以 out 參數(shù) result 返回,如果出現(xiàn)異常,result 值為 -1*/public static void TryParse(string numStr, out int result){try{var num = Convert.ToInt32(numStr);result = num;}catch (Exception e){result = -1;}} }

    轉(zhuǎn)載于:https://www.cnblogs.com/zze46/p/10706397.html

    總結(jié)

    以上是生活随笔為你收集整理的C#基础加强(7)之ref与out的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。