将数组作为参数传递(C# 编程指南)
数组可以作为实参传递给方法形参。 由于数组是引用类型,因此方法可以更改元素的值。
将一维数组作为参数传递
可将初始化的一维数组传递给方法。 例如,下列语句将一个数组发送给了 Print 方法。
int[] theArray = { 1, 3, 5, 7, 9 };
PrintArray(theArray);
下面的代码演示 Print 方法的部分实现。
void PrintArray(int[] arr)
{
// Method code.
}
可在同一步骤中初始化并传递新数组,如下例所示。
PrintArray(new int[] { 1, 3, 5, 7, 9 });
示例
在下面的示例中,先初始化一个字符串数组,然后将其作为参数传递给字符串的 DisplayArray
方法。 该方法将显示数组的元素。 接下来,ChangeArray
方法会反转数组元素,然后由 ChangeArrayElements
方法修改该数组的前三个元素。 每个方法返回后,DisplayArray
方法会显示按值传递数组不会阻止对数组元素的更改。
using System;
class ArrayExample
{
static void DisplayArray(string[] arr) => Console.WriteLine(string.Join(" ", arr));
// Change the array by reversing its elements.
static void ChangeArray(string[] arr) => Array.Reverse(arr);
static void ChangeArrayElements(string[] arr)
{
// Change the value of the first three array elements.
arr[0] = "Mon";
arr[1] = "Wed";
arr[2] = "Fri";
}
static void Main()
{
// Declare and initialize an array.
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
// Display the array elements.
DisplayArray(weekDays);
Console.WriteLine();
// Reverse the array.
ChangeArray(weekDays);
// Display the array again to verify that it stays reversed.
Console.WriteLine("Array weekDays after the call to ChangeArray:");
DisplayArray(weekDays);
Console.WriteLine();
// Assign new values to individual array elements.
ChangeArrayElements(weekDays);
// Display the array again to verify that it has changed.
Console.WriteLine("Array weekDays after the call to ChangeArrayElements:");
DisplayArray(weekDays);
}
}
// The example displays the following output:
// Sun Mon Tue Wed Thu Fri Sat
//
// Array weekDays after the call to ChangeArray:
// Sat Fri Thu Wed Tue Mon Sun
//
// Array weekDays after the call to ChangeArrayElements:
// Mon Wed Fri Wed Tue Mon Sun
将多维数组作为参数传递
通过与传递一维数组相同的方式,向方法传递初始化的多维数组。
int[,] theArray = { { 1, 2 }, { 2, 3 }, { 3, 4 } };
Print2DArray(theArray);
下列代码演示了 Print 方法的部分声明(该方法接受将二维数组作为其参数)。
void Print2DArray(int[,] arr)
{
// Method code.
}
可在一个步骤中初始化并传递新数组,如下例所示:
Print2DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });
示例
在下列示例中,初始化一个整数的二维数组,并将其传递至 Print2DArray
方法。 该方法将显示数组的元素。
class ArrayClass2D
{
static void Print2DArray(int[,] arr)
{
// Display the array elements.
for (int i = 0; i < arr.GetLength(0); i++)
{
for (int j = 0; j < arr.GetLength(1); j++)
{
System.Console.WriteLine("Element({0},{1})={2}", i, j, arr[i, j]);
}
}
}
static void Main()
{
// Pass the array as an argument.
Print2DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });
// Keep the console window open in debug mode.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
/* Output:
Element(0,0)=1
Element(0,1)=2
Element(1,0)=3
Element(1,1)=4
Element(2,0)=5
Element(2,1)=6
Element(3,0)=7
Element(3,1)=8
*/