CodeBlanks Logo Icon CodeBlanks

ref parametreler

C# kursu · Başlangıç · Ders 80/116

ref ile referansla geçme ve değişikliğin çağırana yansımasını öğrenirsin.

ref parametreler

ref anahtar kelimesi bir değişkeni referansla geçirir. Metot içinde yapılan değişiklik çağırana yansır. Normal geçişte değer kopyalanır; ref geçişinde ise değişkenin kendisi paylaşılır.

Tanımda ve çağrıda ref yazılır: static void Double(ref int n) ve Double(ref x). ref ile geçirilen değişken çağrıdan önce mutlaka başlatılmalıdır.

ref kullanımı

ref hem tanımda hem çağrıda yazılmalıdır. Yalnızca bir yerde yazarsan derleme hatası alırsın. Değişken çağrıdan önce başlatılmış olmalıdır; aksi halde ref kullanılamaz.

ref özellikle değer türlerinde (int, double, struct) işe yarar; çünkü bu türler normalde değer kopyasıyla geçer. Birden çok değer döndürmek veya bir değeri metot içinde değiştirmek için kullanılır.

Uygulama Triple metodu

static void Triple(ref int n) metodu tanımla; gövdede n = n * 3; yaz. Main içinde int x = 7; Triple(ref x); çağır ve x'i Console.WriteLine ile yazdır.

Örnek çözümü göster
Triple gövdesine n = n * 3; ekle, Main içine int x = 7; Triple(ref x); Console.WriteLine(x); yaz.
Örnek çözüm:
using System;

class Program
{
    static void Triple(ref int n)
    {
        // n'i üç katına çıkar
        n = n * 3;
    }

    static void Main()
    {
        // x'i tanımla, Triple ile değiştir ve yazdır
        int x = 7;
        Triple(ref x);
        Console.WriteLine(x);
    }
}

Kendini test et

  1. Double(ref x) sonrası Console ne yazar?

    static void Double(ref int n)
    {
        n = n * 2;
    }
    int x = 5;
    Double(ref x);
    Console.WriteLine(x);
    • 5
    • 0
    • 10
    • 20
    Cevabı göster

    10 — Doğru. ref ile x'in kendisi değiştirildi; x = 10 olur.

  2. İfadeyi anlamına eşle

    ref int n
    Referansla geçir
    Double(ref x)
    Çağrıda ref
    int x = 5;
    Önce başlat
    n = n * 2;
    Değişiklik yansır
  3. ref çağrısı

    int x = 4;
    Double(____);
    Console.WriteLine(x);
    Cevabı göster
    int x = 4;
    Double(ref x);
    Console.WriteLine(x);

Başlangıç bölümündeki tüm dersler