Parametreleri Geçirme (C# Programlama Kılavuzu)Passing Parameters (C# Programming Guide)

C#'da bağımsız değişkenler parametrelere değer veya başvuru ile geçirilebilir.In C#, arguments can be passed to parameters either by value or by reference. Başvuruyla geçmek, işlev üyelerinin, yöntemlerinin, özelliklerinin, dizin leyicilerin ve oluşturucuların parametrelerin değerini değiştirmesini ve bu değişikliğin çağrı ortamında devam etmesini sağlar.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. Değeri değiştirme amacıyla bir parametreyi referans olarak geçirmek refiçin, out "veya anahtar kelimeyi" kullanın.To pass a parameter by reference with the intent of changing the value, use the ref, or out keyword. Kopyalamaktan kaçınmak ancak değeri değiştirmemek amacıyla referans la geçmek in için değiştiricikullanın.To pass by reference with the intent of avoiding copying but not changing the value, use the in modifier. Basitlik için, bu ref konudaki örneklerde yalnızca anahtar kelime kullanılır.For simplicity, only the ref keyword is used in the examples in this topic. Arasındaki infark hakkında daha reffazla outbilgi için , , ve , ,bakınız , ref, ve dışarı.For more information about the difference between in, ref, and out, see in, ref, and out.

Aşağıdaki örnekte değer ve başvuru parametreleri arasındaki fark gösterin.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;
    }
}

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:For more information, see the following topics:

C# Dil BelirtimiC# Language Specification

Daha fazla bilgi için C# Dil Belirtiminde Bağımsız Değişken listelerine bakın.For more information, see Argument lists in the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also