亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C# out和ref區別

2019-11-17 03:13:12
字體:
來源:轉載
供稿:網友

C# out和ref區別

Posted on 2014-04-18 19:30 第二次注冊 閱讀(...) 評論(...) 編輯 收藏

out與ref的區別總結: 1.兩者都是通過引用來傳遞。 2.兩者都按地址傳遞的,使用后都將改變原來參數的數值。 3.屬性不是變量,因此不能作為 out或ref 參數傳遞。 4.若要使用 ref 或 out,方法定義和調用方法都必須顯式使用 out、ref 關鍵字。 5.rel可以把參數的數值傳遞進函數,但是out是要把參數清空,就是說你無法把一個數值從out傳遞進去的,out進去后,參數的數值為空,所以你必須初始化一次?;蛘哒f,rel是有進有出,out是只出不進 6.盡管 ref 和 out 在運行時的處理方式不同,但在編譯時的處理方式相同。 —6-1.因此,如果一個方法采用 ref 參數(例:Method(ref int i)),而另一個方法采用 out 參數(例:Method(out int i)),則無法重載這兩個方法,因為從編譯的角度來看,以上兩個方法是完全相同的,因此將不會編譯方法內的代碼 —6-2.但是,如果一個方法采用 ref 或 out 參數(例如:Method(ref/out int i))),而另一個方法不采用這兩個參數Method(int i)),則可以進行重載 7.實用場合:out適合用在需要retrun多個返回值的地方,而ref則用在需要被調用的方法修改調用者的引用的時候。

代碼如下:

 1         public static void Main(string[] args) 2         { 3             //使用out 4             Console.WriteLine("-----------------------------使用OUT的方法-----------------------------"); 5             Console.WriteLine("-----------------調用Out方法前參數沒賦值-----------------"); 6             string outName; 7             string outSchool; 8             int outGrad; 9             outMethod(out outName, out outGrad, out outSchool);10             Console.WriteLine("學生" + outName + "是:" + outSchool + outGrad + "級學生");11 12             Console.WriteLine("-----------------調用Out方法前參數賦值了-----------------");13             string outNameValue = "李XX";14             string outSchoolValue = "河南大學";15             int outGradValue = 2011;16             outMethod(out outNameValue, out outGradValue, out outSchoolValue);17             Console.WriteLine("學生" + outNameValue + "是:" + outSchoolValue + outGradValue + "級學生");18 19 20 21             //使用ref:22             Console.WriteLine("-----------------------------使用REF的方法-----------------------------");23             string refName = "李XX";24             string refSchool = "河南大學";25             int refGrad = 2011;26             Console.WriteLine("-----------------refMethod方法里沒賦值-----------------");27             refMethod(ref refName, ref refGrad, ref refSchool);28             Console.WriteLine("學生" + refName + "是:" + refSchool + refGrad + "級學生");29             Console.WriteLine("-----------------refMethod方法里賦值了-----------------");30             refMethodValue(ref refName, ref refGrad, ref refSchool);31             Console.WriteLine("學生" + refName + "是:" + refSchool + refGrad + "級學生");32 33             Console.ReadLine();34         }35 36 37 38         //outMethod39         //out方法輸出參數特征:40         //1.不在棧中為形參分配新的內存。41         //2.形參的名稱相當于實參變量的別名,引用與實參相同的內存位置。42         //3.既然形參和實參引用相同的內存位置,則在方法執行期間,形參所做的任何改變在方法完成之后通過實參變量都是可見的。43         PRivate static void outMethod(out string name, out int grad, out string school)44         {45             name = "王XX";46             grad = 2009;47             school = "鄭州大學";48         }49 50         //refMethod51         //ref方法輸出參數特征:52         //1.不在棧中為形參分配新的內存。53         //2.形參的名稱相當于實參變量的別名,引用與實參相同的內存位置。54         //3.既然形參和實參引用相同的內存位置,則在方法執行期間,形參所做的任何改變在方法完成之后通過實參變量都是可見的。55         private static void refMethod(ref string name, ref int grad, ref string school)56         {57 58         }59         private static void refMethodValue(ref string name, ref int grad, ref string school)60         {61             name = "王XX";62             grad = 2009;63             school = "鄭州大學";64         }

以上代碼的輸出結果:

由以上的輸出結果可以看出:

1、在調用方法outMethod之前變量賦值不賦值沒有任何意義,因為out是要把參數清空的,其參數賦值只要在方法內部進行就可以了;即out是只出不進

2、在調用refMethod之前必須給變量賦值,然而在refMethod方法內部參數賦值不賦值均可以,如方法內部重新賦值了則修改其值,如方法內部沒重新賦值則不修改其值;rel是有進有出,


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
青草青草久热精品视频在线网站| 国产xxx69麻豆国语对白| 国产精品自拍偷拍| 亚洲无线码在线一区观看| 97久久精品人人澡人人爽缅北| 欧美在线一级va免费观看| 欧美色欧美亚洲高清在线视频| 日韩在线资源网| 日韩黄色高清视频| 欧美亚洲第一页| 精品久久久一区| 国产成人精品视频在线| 国产小视频国产精品| 欧美激情精品久久久久久| 91亚洲精品久久久久久久久久久久| 91中文字幕在线观看| 久久久久久香蕉网| 欧美日韩国产影院| 亚洲精品国产免费| 欧美激情第6页| 欧美日韩激情视频| 日本三级久久久| 欧美xxxx做受欧美.88| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲最大中文字幕| 精品中文字幕久久久久久| 成人免费福利在线| 国产精品白丝av嫩草影院| 亚洲日韩欧美视频一区| 91日本在线视频| 国产不卡av在线| 国产精品一香蕉国产线看观看| 精品人伦一区二区三区蜜桃网站| 久久精品青青大伊人av| 欧美大片欧美激情性色a∨久久| 欧美日韩一区二区免费视频| 中文字幕欧美视频在线| www.亚洲天堂| 国产精品日日摸夜夜添夜夜av| 久久精品男人天堂| 在线播放国产一区二区三区| 国内精品在线一区| 亚洲成**性毛茸茸| 国模gogo一区二区大胆私拍| 红桃视频成人在线观看| 亚洲乱码国产乱码精品精天堂| 亚洲最大成人在线| 成人国产精品日本在线| 久久伊人色综合| 欧美成人精品三级在线观看| 亚洲成人性视频| 精品在线小视频| 成人亲热视频网站| 国产一区二区三区免费视频| 久久中文字幕在线视频| 久久久亚洲福利精品午夜| 中文字幕亚洲情99在线| 国产欧美日韩中文字幕在线| 欧美野外猛男的大粗鳮| 色无极影院亚洲| 国产在线999| 日韩av在线影视| 91精品成人久久| 黄色91在线观看| 在线观看国产欧美| 最近2019年日本中文免费字幕| 亚洲男人天堂手机在线| 亚洲综合中文字幕68页| 欧美激情视频网| 懂色av影视一区二区三区| 国产精品久久久久久久久久尿| 色噜噜狠狠狠综合曰曰曰| 欧美激情xxxx| 精品久久久久久久久久ntr影视| 亚洲无线码在线一区观看| 久久噜噜噜精品国产亚洲综合| 在线电影欧美日韩一区二区私密| 97色在线播放视频| 欧美巨乳美女视频| 国产精品啪视频| 亚洲视频在线免费看| 欧美激情a∨在线视频播放| 亚洲福利视频在线| 国产欧美日韩91| 亚洲成人久久久久| 精品久久国产精品| 日韩精品在线视频观看| 欧洲成人免费视频| 尤物九九久久国产精品的分类| 精品国内亚洲在观看18黄| 91理论片午午论夜理片久久| 7777精品久久久久久| 欧美精品18videosex性欧美| 亚洲天堂网在线观看| 91久久久久久久久久| 欧美日韩午夜视频在线观看| 狠狠色狠狠色综合日日小说| 免费91在线视频| 亚洲国产高潮在线观看| 国产日本欧美一区二区三区在线| 91久久夜色精品国产网站| 国产精品日韩在线| 亚洲欧美另类国产| 日韩av成人在线观看| 欧美成人精品h版在线观看| 国产精品色婷婷视频| 国产精品男人的天堂| 久久亚洲一区二区三区四区五区高| 久久久视频在线| 97成人超碰免| 国产精品久久久久久久久借妻| 91久久精品国产91久久| 亚洲精品98久久久久久中文字幕| 国产精品久久久久福利| 国产成人精品久久亚洲高清不卡| 大桥未久av一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 欧美日韩裸体免费视频| 国产一区二区三区18| 成人国产精品色哟哟| 国产精品视频在线观看| 国产精品精品国产| 夜色77av精品影院| 欧美极品少妇xxxxⅹ裸体艺术| 在线日韩日本国产亚洲| 欧美日韩免费网站| 在线看日韩欧美| 久久精品电影网站| 91在线观看免费高清| 成人免费xxxxx在线观看| 欧美大全免费观看电视剧大泉洋| 久久影院中文字幕| 日韩影视在线观看| 日韩中文理论片| 亚洲第一精品电影| 精品国产一区二区三区在线观看| 亚洲精品av在线| 7777kkkk成人观看| 欧洲美女免费图片一区| 国产成人精品电影久久久| 亚洲专区国产精品| 国产精品 欧美在线| 国产日产欧美a一级在线| 国产精品永久免费| 亚洲欧美日韩在线一区| 日韩中文在线不卡| 国产精品中文在线| www.日韩.com| 欧美激情啊啊啊| 国产精品福利在线观看| 欧美一区三区三区高中清蜜桃| 九九热最新视频//这里只有精品| 久久亚洲私人国产精品va| 中文字幕日韩电影| 狠狠色狠狠色综合日日小说| 欧美精品videosex极品1| 久久国产精品久久久久久久久久| 欧美激情在线观看视频| 亚洲系列中文字幕| 欧美xxxx做受欧美.88| 欧美综合国产精品久久丁香| 精品国产欧美一区二区三区成人| 久久天天躁狠狠躁夜夜躁2014| 久久久久免费精品国产|