(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Übergeben von Arrays als Argumente (C#-Programmierhandbuch)

Arrays können als Argumente an Methodenparameter übergeben werden. Da Arrays Verweistypen sind, kann die Methode den Wert der Elemente ändern.

Sie können ein initialisiertes eindimensionales Array an eine Methode übergeben. Die folgende Anweisung sendet z. B. ein Array an eine print-Methode.


int[] theArray = { 1, 3, 5, 7, 9 };
PrintArray(theArray);


Der folgende Code zeigt eine Teilimplementierung der print-Methode.


void PrintArray(int[] arr)
{
    // Method code.
}


Sie können ein neues Array in einem Schritt initialisieren und übergeben, wie im folgenden Beispiel gezeigt.


PrintArray(new int[] { 1, 3, 5, 7, 9 });


hyfeyz71.collapse_all(de-de,VS.120).gifBeschreibung

Im folgenden Beispiel wird ein Zeichenfolgenarray initialisiert und als Argument an eine PrintArray-Methode für Zeichenfolgen übergeben. Die Methode zeigt die Elemente des Arrays an. Anschließend werden die Methoden ChangeArray und ChangeArrayElement aufgerufen, um zu veranschaulichen, dass das Senden eines Arrayarguments nach Wert Änderungen an den Arrayelementen nicht verhindert.

hyfeyz71.collapse_all(de-de,VS.120).gifCode


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


Die Übergabe eines initialisierten mehrdimensionalen Arrays an eine Methode erfolgt wie bei einem eindimensionalen Array.


int[,] theArray = { { 1, 2 }, { 2, 3 }, { 3, 4 } };
Print2DArray(theArray);


Der folgende Code zeigt die Teildeklaration einer print-Methode, die ein zweidimensionales Array als Argument erfordert.


void Print2DArray(int[,] arr)
{
    // Method code.
}


Sie können ein neues Array in einem Schritt initialisieren und übergeben, wie im folgenden Beispiel gezeigt.


Print2DArray(new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } });


hyfeyz71.collapse_all(de-de,VS.120).gifBeschreibung

Im folgenden Beispiel wird ein zweidimensionales Array mit ganzen Zahlen initialisiert und an die Print2DArray-Methode übergeben. Die Methode zeigt die Elemente des Arrays an.

hyfeyz71.collapse_all(de-de,VS.120).gifCode


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
    */


Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft