天天看點

ref 和out傳參的不同

今天又遇到這個問題了,問了問同僚,他說最近面試的時候,也問道他了,于是給我講了講,現在大概是記住了,記錄下來,以備自用。

首先是看下面的code例子

string b="bb";

Public void A(ref b)

{

//to do

}

string d;

Public void C(out d)

d="jjjjj";

// to do 

方法A是引用參數b但是b必須先定義并且在方法之前進行初始化,在引用的時候就像一般方法處理即可;方法B是先定義變量d此時不需要初始化,在引用此變量的方法中需要進行初始化,然後可在方法内做任何操作,個人了解方法C等同于下列代碼:

Public string C(string d)

d="ddd";

return d;

所有out是在傳進未初始化的參數後在内部做一定的處理,并傳回定義的類型。ok game over!

本文轉自shenzhoulong  51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/677047,如需轉載請自行聯系原作者