CodeBlanks Logo Icon CodeBlanks

out parametreler

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

out ile metottan birden çok değer döndürmeyi öğrenirsin.

out parametreler

out anahtar kelimesi bir metottan birden fazla değer döndürmek için kullanılır. ref gibi referansla geçirir ama farkı: değişken çağıran tarafından başlatılmış olması gerekmez; metot içinde atanmalıdır.

Tanımda ve çağrıda out yazılır: static void Divide(int a, int b, out int quotient, out int remainder). Çağrı: Divide(17, 5, out int q, out int r).

ref ve out farkı

ref ve out her ikisi de referansla geçiş yapar ama bir önemli farkları vardır. ref'te değişken çağrıdan önce başlatılmalıdır; out'ta ise gerekmez ama metot içinde mutlaka atanmalıdır.

C# 7 ile birlikte out int r sözdizimi çağrıda değişken tanımlamaya izin verir; ayrı bir satırda önceden tanımlamaya gerek yoktur. Bu özellik kodu daha kısa okunaklı yapar.

Uygulama Bölme metodu

static void Divide(int a, int b, out int quotient, out int remainder) metodu tanımla; gövdede quotient = a / b; ve remainder = a % b; ata. Main içinde Divide(17, 5, out int q, out int r) çağır ve q'yu Console.WriteLine ile yazdır.

Örnek çözümü göster
Divide gövdesine quotient = a / b; ve remainder = a % b; ekle, Main içine Divide(17, 5, out int q, out int r); Console.WriteLine(q); yaz.
Örnek çözüm:
using System;

class Program
{
    static void Divide(int a, int b, out int quotient, out int remainder)
    {
        // quotient ve remainder değerlerini ata
        quotient = a / b;
        remainder = a % b;
    }

    static void Main()
    {
        // Divide metodunu çağır ve q'yu yazdır
        Divide(17, 5, out int q, out int r);
        Console.WriteLine(q);
    }
}

Kendini test et

  1. out tanımla

    static void Divide(int a, int b, out int quotient, ____)
    {
        quotient = a / b;
        remainder = a % b;
    }
    Cevabı göster
    static void Divide(int a, int b, out int quotient, out int remainder)
    {
        quotient = a / b;
        remainder = a % b;
    }
  2. İfadeyi anlamına eşle

    out int val
    Çıktı parametresi
    out val
    Çağrıda out
    val = 5;
    Metot içinde ata
    int val;
    Başlatmasız
  3. DoubleIt(5, out r) sonrası r çıktısı nedir?

    static void DoubleIt(int n, out int result)
    {
        result = n * 2;
    }
    DoubleIt(5, out int r);
    Console.WriteLine(r);
    • 5
    • 10
    • 0
    • r
    Cevabı göster

    10 — Doğru. result = 5 * 2 = 10 olur; out ile r'ye yazılır.

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