Übergeben von Parametern (C#-Programmierhandbuch)Passing Parameters (C# Programming Guide)

In C# können Argumente an Parameter entweder als Wert oder als Verweis übergeben werden.In C#, arguments can be passed to parameters either by value or by reference. Durch die Übergabe als Verweis können Funktionsmember, Methoden, Eigenschaften, Indexer, Operatoren und Konstruktoren den Wert der Parameter ändern und behalten diese Änderung in der aufrufenden Umgebung bei.Passing by reference enables function members, methods, properties, indexers, operators, and constructors to change the value of the parameters and have that change persist in the calling environment. Verwenden Sie das Schlüsselwort ref oder out, um einen Parameter als Verweis zu übergeben.To pass a parameter by reference, use the ref or out keyword. Der Einfachheit halber wird in den Beispielen in diesem Thema nur das Schlüsselwort ref verwendet.For simplicity, only the ref keyword is used in the examples in this topic. Weitere Informationen zu den Unterschieden zwischen ref und out finden Sie unter ref, out sowie Übergeben von Arrays mithilfe von „ref“ und „out“.For more information about the difference between ref and out, see ref, out, and Passing Arrays Using ref and out.

Das folgende Beispiel veranschaulicht die Unterschiede zwischen Wert- und Verweisparametern.The following example illustrates the difference between value and reference parameters.

class Program
{
    static void Main(string[] args)
    {
        int arg;

        // Passing by value.
        // The value of arg in Main is not changed.
        arg = 4;
        squareVal(arg);
        Console.WriteLine(arg);
        // Output: 4

        // Passing by reference.
        // The value of arg in Main is changed.
        arg = 4;
        squareRef(ref arg);
        Console.WriteLine(arg);
        // Output: 16 
    }

    static void squareVal(int valParameter)
    {
        valParameter *= valParameter;
    }

    // Passing by reference
    static void squareRef(ref int refParameter)
    {
        refParameter *= refParameter;
    }
}

Weitere Informationen finden Sie unter den folgenden Themen:For more information, see the following topics:

C#-ProgrammiersprachenspezifikationC# Language Specification

Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auchSee Also

C#-ProgrammierhandbuchC# Programming Guide
MethodenMethods