国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

黑馬程序員-out和ref

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

黑馬程序員-out和ref

C# 方法參數關鍵字:ref、out

  當希望方法返回多個值時,聲明 out方法很有用。使用 out參數的方法仍然可以將變量用作返回類型(請參見return),但它還可以將一個或多個對象作為 out參數返回給調用方法。此示例使用 out在一個方法調用中返回三個變量。請注意,第三個參數所賦的值為 Null。這樣便允許方法有選擇地返回值。  out關鍵字會導致參數通過引用來傳遞。這與ref關鍵字類似,不同之處在于ref要求變量必須在傳遞之前進行初始化。若要使用out參數,方法定義和調用方法都必須顯式使用out關鍵字。

ref

ref 關鍵字使參數按引用傳遞。其效果是,當控制權傳遞回調用方法時,在方法中對參數所做的任何更改都將反映在該變量中。

  1. 若要使用 ref 參數,則方法定義和調用方法都必須顯式使用 ref 關鍵字。
  2. 傳遞到 ref 參數的參數必須最先初始化。這與 out 不同,out 的參數在傳遞之前不需要顯式初始化。
  3. 屬性不是變量,因此不能作為 ref 參數傳遞。
  4. 盡管 ref 和 out 在運行時的處理方式不同,但它們在編譯時的處理方式是相同的。因此,如果一個方法采用 ref 參數,而另一個方法采用 out 參數,則無法重載這兩個方法。例如,從編譯的角度來看,以下代碼中的兩個方法是完全相同的。如果嘗試這么做,將導致不能編譯該代碼。
  5. 如果一個方法采用 ref 或 out 參數,而另一個方法不采用這兩類參數,則可以進行重載。

示例:

按引用傳遞值類型是有用的,但是 ref 對于傳遞引用類型也是很有用的。這允許被調用的方法修改該引用所引用的對象,因為引用本身是按引用來傳遞的。

usingSystem;

classApp

{

publicstaticvoidUseRef(refinti)

{

i+=100;

Console.WriteLine("i={0}",i);

}

staticvoidMain()

{

inti=10;

//查看調用方法之前的值

Console.WriteLine("Beforethemethodcalling:i={0}",i);

UseRef(refi);

//查看調用方法之后的值

Console.WriteLine("Afterthemethodcalling:i={0}",i);

Console.Read();

}

}

out

out 關鍵字會導致參數通過引用來傳遞。這與 ref 關鍵字類似。

與 ref 的不同之處:

  1. ref 要求變量必須在傳遞之前進行初始化。
  2. 盡管作為 out 參數傳遞的變量不需要在傳遞之前進行初始化,但需要調用方法以便在方法返回之前賦值。

示例:

與 ref 示例不同的地方只要將 ref 改為 out,然后變量 i 僅需要聲明即可。

usingSystem;

classApp

{

publicstaticvoidUSEOut(out inti)

{

   i = 0;

i+=100;

Console.WriteLine("i={0}",i);

}

staticvoidMain()

{

inti;

//查看調用方法之前的值,這兒就不能使用了。

//Console.WriteLine("Beforethemethodcalling:i={0}",i);

UseOut(out i);

//查看調用方法之后的值

Console.WriteLine("Afterthemethodcalling:i={0}",i);

Console.Read();

}

}

C# 參考之方法參數關鍵字:params、ref及out


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江达县| 桃园县| 栾城县| 海阳市| 双峰县| 华蓥市| 塔城市| 镶黄旗| 陆丰市| 丰台区| 大丰市| 三门峡市| 稷山县| 湖州市| 尉氏县| 韶山市| 十堰市| 香河县| 广河县| 米林县| 云浮市| 龙州县| 蚌埠市| 怀柔区| 景东| 桃源县| 南康市| 山阳县| 肇州县| 长武县| 白沙| 临猗县| 富锦市| 公安县| 加查县| 宾阳县| 乌鲁木齐市| 闵行区| 济源市| 资源县| 大厂|