C# out和ref傳遞數(shù)組
C#學(xué)習(xí)體會(huì):使用out和ref C#傳遞數(shù)組(downmoon),希望與大家分享
1、與所有的 out 參數(shù)一樣,在使用數(shù)組類型的 out 參數(shù)前必須先為其賦值,即必須由接受方為其賦值。例如:
- publicstaticvoidMyMethod(outint[]arr)
- ...{
- arr=newint[10];//數(shù)組arr的明確委派
- }
2、與所有的 ref 參數(shù)一樣,數(shù)組類型的 ref 參數(shù)必須由調(diào)用方明確賦值。因此不需要由接受方明確賦值??梢詫?shù)組類型的 ref 參數(shù)更改為調(diào)用的結(jié)果。例如,可以為數(shù)組賦以 null 值,或?qū)⑵涑跏蓟癁榱硪粋€(gè)數(shù)組。例如:
- publicstaticvoidMyMethod(refint[]arr)
- ...{
- arr=newint[10];//arr初始化為一個(gè)新的數(shù)組
- }
下面的兩個(gè)示例說(shuō)明out和ref C#傳遞數(shù)組的方法上的用法差異。
示例 1
在此例中,在調(diào)用方(Main 方法)中聲明數(shù)組 myArray,并在 FillArray 方法中初始化此數(shù)組。然后將數(shù)組元素返回調(diào)用方并顯示。
- usingSystem;
- classTestOut
- ...{
- staticpublicvoidFillArray(outint[]myArray)
- ...{
- //初始化數(shù)組(必須):
- myArray=newint[5]...{1,2,3,4,5};
- }
- staticpublicvoidMain()
- ...{
- int[]myArray;//初始化數(shù)組(不是必須的!)
- //傳遞數(shù)組給(使用out方式的)調(diào)用方:
- FillArray(outmyArray);
- //顯示數(shù)組元素
- Console.WriteLine("數(shù)組元素是:");
- for(inti=0;i<myArray.Length;i++)
- Console.WriteLine(myArray[i]);
- }
- }
示例 2
在此例中,在調(diào)用方(Main 方法)中初始化數(shù)組 myArray,并通過(guò)使用 ref 參數(shù)將其傳遞給 FillArray 方法。在 FillArray 方法中更新某些數(shù)組元素。然后將數(shù)組元素返回調(diào)用方并顯示。 以上介紹out和ref C#傳遞數(shù)組。
- usingSystem;
- classTestRef
- ...{
- publicstaticvoidFillArray(refint[]arr)
- ...{
- //根據(jù)需要?jiǎng)?chuàng)建一新的數(shù)組(不是必須的)
- if(arr==null)
- arr=newint[10];
- //否則填充數(shù)組,就可以了
- arr[0]=123;
- arr[4]=1024;
- }
- staticpublicvoidMain()
- ...{
- //初始化數(shù)組:
- int[]myArray=...{1,2,3,4,5};
- //使用ref傳遞數(shù)組:
- FillArray(refmyArray);
- //顯示更新后的數(shù)組元素:
- Console.WriteLine("數(shù)組元素是:");
- for(inti=0;i<myArray.Length;i++)
- Console.WriteLine(myArray[i]);
- }
- }
【編輯推薦】