Przekazywanie tablic jako argumentów (Podręcznik programowania C#)
Tablice mogą być przekazywane jako argumenty do parametrów metody.Ponieważ tablice są typy odwołań, metoda można zmienić wartości elementów.
Przekazywanie jednowymiarowej tablic jako argumentów
Zainicjowanej tablicy jednowymiarowej można przekazać do metody.Na przykład poniższa instrukcja wysyła tablicy do metody drukowania.
int[] theArray = { 1, 3, 5, 7, 9 };
PrintArray(theArray);
Poniższy kod ilustruje częściowego wykonania metody drukowania.
void PrintArray(int[] arr)
{
// Method code.
}
Można zainicjować i przekazać nowej tablicy w jednym kroku, jak to pokazano w następującym przykładzie.
PrintArray(new int[] { 1, 3, 5, 7, 9 });
Przykład
Opis
W poniższym przykładzie, tablica ciągów zainicjowany i przekazanej jako argument do PrintArray metody dla ciągów.Metoda Wyświetla elementy tablicy.Metody dalej, ChangeArray i ChangeArrayElement są nazywane do wykazania, że wysłanie wartości argumentu tablica nie uniemożliwia zmiany do elementów tablicy.
Kod
class ArrayClass
{
static void PrintArray(string[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
System.Console.Write(arr[i] + "{0}", i < arr.Length - 1 ? " " : "");
}
System.Console.WriteLine();
}
static void ChangeArray(string[] arr)
{
// The following attempt to reverse the array does not persist when
// the method returns, because arr is a value parameter.
arr = (arr.Reverse()).ToArray();
// The following statement displays Sat as the first element in the array.
System.Console.WriteLine("arr[0] is {0} in ChangeArray.", arr[0]);
}
static void ChangeArrayElements(string[] arr)
{
// The following assignments change the value of individual array
// elements.
arr[0] = "Sat";
arr[1] = "Fri";
arr[2] = "Thu";
// The following statement again displays Sat as the first element
// in the array arr, inside the called method.
System.Console.WriteLine("arr[0] is {0} in ChangeArrayElements.", arr[0]);
}
static void Main()
{
// Declare and initialize an array.
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
// Pass the array as an argument to PrintArray.
PrintArray(weekDays);
// ChangeArray tries to change the array by assigning something new
// to the array in the method.
ChangeArray(weekDays);
// Print the array again, to verify that it has not been changed.
System.Console.WriteLine("Array weekDays after the call to ChangeArray:");
PrintArray(weekDays);
System.Console.WriteLine();
// ChangeArrayElements assigns new values to individual array
// elements.
ChangeArrayElements(weekDays);
// The changes to individual elements persist after the method returns.
// Print the array, to verify that it has been changed.
System.Console.WriteLine("Array weekDays after the call to ChangeArrayElements:");
PrintArray(weekDays);
}
}
// Output:
// Sun Mon Tue Wed Thu Fri Sat
// arr[0] is Sat in ChangeArray.
// Array weekDays after the call to ChangeArray:
// Sun Mon Tue Wed Thu Fri Sat
//
// arr[0] is Sat in ChangeArrayElements.
// Array weekDays after the call to ChangeArrayElements:
// Sat Fri Thu Wed Thu Fri Sat
Przekazując tablice wielowymiarowe jako argumenty
Tablica wielowymiarowa zainicjowany są przekazywane do metody w taki sam sposób przekazać tablicą jednowymiarową.
int[,] theArray = { { 1, 2 }, { 2, 3 }, { 3, 4 } };
Print2DArray(theArray);
Poniższy kod ilustruje częściowa deklaracja metody drukowania, która akceptuje dwuwymiarowej tablicy jako argument.
void Print2DArray(int[,] arr)
{
// Method code.
}
Można zainicjować i przekazać nowej tablicy w jednym kroku, jak to pokazano w następującym przykładzie.
Print2DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });
Przykład
Opis
W poniższym przykładzie dwuwymiarowej tablicy liczb całkowitych jest zainicjowana i przekazany do Print2DArray metody.Metoda Wyświetla elementy tablicy.
Kod
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
*/
Zobacz też
Informacje
Tablice (Podręcznik programowania C#)
Tablice jednowymiarowe (Podręcznik programowania C#)
Tablice wielowymiarowe (Podręcznik programowania C#)
Tablice nieregularne (Podręcznik programowania C#)