首頁  >  文章  >  後端開發  >  C#難點逐一擊破(2):out返回參數

C#難點逐一擊破(2):out返回參數

黄舟
黄舟原創
2016-12-22 14:05:061105瀏覽

傳值(by value)與傳址(by reference)分別為普通傳遞參數方式與ref宣告方式,傳址方式在使用前需要ref關鍵字修飾;out為輸出回傳傳遞,與ref相同之處較多,其重要差異在於上一節講到的ref在被引用方法中必須被初始化;out在被引用方法中一定要有回傳值。

using System; 

/****************************** 
* Chapter:C#难点逐个击破(一) 
* Author:王洪剑 
* Date:2010-1-15 
* Blog:http://www.51obj.cn/ 
* Email:walkingp@126.com 
* Description:重点讲解输出参数out 
* ***************************/ 
namespace TestOut 
{ 
class Program 
{ 
/// <summary> 
/// out的输出值、返回值 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
static string OutResultMethod(out string name) 
{ 
string _name = "Wang Hongjian"; 
name = _name; 
string __name = "Zheng Zi"; 
return __name; 
} 
static void Main(string[] args) 
{ 
string _name = "Zhang Yu"; 
Console.WriteLine("调用前:{0}", _name); 
string result= OutResultMethod(out _name); 
Console.WriteLine("调用后:{0}",_name); 
Console.WriteLine("返回结果:{0}",result); 
Console.ReadKey(); 
} 
} 
}

運行結果:

C#難點逐一擊破(2):out返回參數

out在實際專案中使用較多,這是因為out可以回傳多個值 

class Program 
{ 
/// <summary> 
/// out的输出值、返回值 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
static string OutResultMethod(out string name,out string password) 
{ 
string _name = "Wang Hongjian"; 
name = _name; 
string _password = "123456"; 
password = _password; 
string __name = "Zheng Zi"; 
return __name; 
} 
static void Main(string[] args) 
{ 
string _name = "Zhang Yu"; 
string _password; 
Console.WriteLine("调用前:{0}", _name); 
string result = OutResultMethod(out _name, out _password);//多个参数传递 
Console.WriteLine("调用后:{0}",_name); 
Console.WriteLine("返回结果:{0}",result); 
Console.ReadKey(); 
} 
}

聯想多個參數,你一定想到了使用數組吧,使用數組是個不錯,使用數組是個不錯很好的方式,陣列本身把同一類型的參數打包「封裝"為一個物件傳遞給方法,這樣可以簡化多參數方法的編寫,還能實現類似重載的效果。 

static void OutArrayMethod(out string[] strArr) 
{ 
int i = 0; 
string[] _strArr = new string[10]; 
while (i < _strArr.Length) 
{ 
_strArr[i] = "第" + i + "个成员"; 
i++; 
} 
strArr = _strArr; 
} 
static void Main(string[] args) 
{ 
string[] _strArr=new string[10]; 
OutArrayMethod(out _strArr); 
foreach (string str in _strArr) 
{ 
Console.WriteLine(str); 
} 
Console.ReadKey(); 
}

運作效果: 

C#難點逐一擊破(2):out返回參數

 以上是C#難點逐一擊破(2):out回傳參數的內容,更多相關內容請關注PHPcn(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn