本文實例講述了C#中Out與Ref的區別,可以加深C#程序設計人員對Out和Ref用法的理解,具體分析如下:
一、區別分析:
Out和Ref作為參數傳遞到方法體中,所傳遞的都是引用地址,兩者在操作上本身沒有區別。
但Out傳遞到方法體時,參數會清空,這意味著在方法體內使用Out參數前必須賦值。
而Ref傳遞到方法體時,其參數也是一起被傳遞進來,所以作為Ref參數傳遞,方法體中可以不對其參數賦值。
二、實例代碼如下:
class Program{ /*ref是有進有出,out是只出不進*/ static void Main(string[] args) { /*作為Out參數傳遞 傳遞前可以不初始化*/ string outString = "This is the outString value"; Console.WriteLine(outString); outMethod(out outString); Console.WriteLine(outString); /*作為Ref參數傳遞 傳遞前必須初始化*/ string refString = "This is the refString value"; Console.WriteLine(refString); refMethod(ref refString); Console.WriteLine(refString); Console.ReadLine(); } static bool outMethod(out string str) { /*作為Out參數傳遞 傳遞到方法體后 參數被清空*/ //Console.WriteLine(str); Use of unassigned out parameter 'str' /*作為Out參數傳遞 值必須在方法體內賦值*/ /*作為Out參數傳遞 返回前值必須初始化*/ str = "This is the new outString value"; return true; } static bool refMethod(ref string str) { Console.WriteLine(str); /*作為Ref參數傳遞 返回前值可以不初始化*/ return true; }}
希望本文所述實例對大家C#程序設計有一定的幫助。
新聞熱點
疑難解答