0Pricing
C# Academy · Ders

Yapı Bozma

Tuple'ları ayrı değişkenlere açın.

Yapı Bozma, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 4 dersten oluşur.

Ayrıştırma Nedir

Ayrıştırma, bir demeti veya nesneyi tek bir ifadede ayrı değişkenlere böler; böylece her bölüme doğrudan ad verebilirsiniz.

using System;

class Program
{
    static void Main()
    {
        var point = (3, 4);
        (int x, int y) = point;
        Console.WriteLine("x=" + x + ", y=" + y);
    }
}

Bir Demeti Ayrıştırma

Hedef değişkenleri = işaretinin solunda parantez içine yazın. Her değişken, kendisine karşılık gelen demet öğesini alır.

using System;

class Program
{
    static void Main()
    {
        var user = ("Ada", 36);
        (string name, int age) = user;
        Console.WriteLine(name + " is " + age);
    }
}

Ayrıştırmada var Kullanımı

Türleri var ile derleyicinin çıkarmasını sağlayabilirsiniz; bunu her değişken için ayrı ayrı veya grubun tamamı için yapabilirsiniz.

using System;

class Program
{
    static void Main()
    {
        var data = (1, "one", true);
        var (id, word, flag) = data;
        Console.WriteLine(id + " " + word + " " + flag);
    }
}

Bir Yöntem Sonucunu Ayrıştırma

Bir yöntemin döndürdüğü demeti doğrudan adlandırılmış değişkenlere ayrıştırabilirsiniz.

using System;

class Program
{
    static (int, int) MinMax(int a, int b) => a < b ? (a, b) : (b, a);

    static void Main()
    {
        var (lo, hi) = MinMax(8, 3);
        Console.WriteLine("min=" + lo + ", max=" + hi);
    }
}

Değerleri Yok Sayma

Ayrıştırma sırasında ihtiyaç duymadığınız bölümleri yok saymak için alt çizgi _ kullanın.

using System;

class Program
{
    static (int, int, int) Rgb() => (255, 128, 0);

    static void Main()
    {
        var (r, _, _) = Rgb();
        Console.WriteLine("Red channel: " + r);
    }
}

Mevcut Değişkenlere Ayrıştırma

Tür adlarını yazarak önceden bildirilmiş değişkenlere atama yapabilirsiniz.

using System;

class Program
{
    static void Main()
    {
        int a = 0, b = 0;
        (a, b) = (10, 20);
        Console.WriteLine(a + ", " + b);
    }
}

Demetlerle Değiş Tokuş Yapma

Pratik bir yöntem: Geçici bir değişkene gerek kalmadan, demet ayrıştırmayı kullanarak iki değişkeni tek satırda değiş tokuş edebilirsiniz.

using System;

class Program
{
    static void Main()
    {
        int x = 1, y = 2;
        (x, y) = (y, x);
        Console.WriteLine("x=" + x + ", y=" + y);
    }
}

Deconstruct Yöntemi

Kendi sınıflarınızın ayrıştırmayı desteklemesi için out parametreleri alan bir Deconstruct yöntemi tanımlayabilirsiniz.

using System;

class Point
{
    public int X, Y;
    public Point(int x, int y) { X = x; Y = y; }

    public void Deconstruct(out int x, out int y)
    {
        x = X;
        y = Y;
    }
}

class Program
{
    static void Main()
    {
        var p = new Point(5, 9);
        var (px, py) = p;
        Console.WriteLine(px + ", " + py);
    }
}

Birden Çok Deconstruct Aşırı Yüklemesi

Bir sınıf, farklı sayıda değer sunan birkaç Deconstruct aşırı yüklemesi sağlayabilir.

using System;

class Person
{
    public string Name; public int Age; public string City;
    public Person(string n, int a, string c) { Name = n; Age = a; City = c; }

    public void Deconstruct(out string name, out int age)
    {
        name = Name; age = Age;
    }
}

class Program
{
    static void Main()
    {
        var p = new Person("Ada", 36, "London");
        var (name, age) = p;
        Console.WriteLine(name + ", " + age);
    }
}

foreach İçinde Ayrıştırma

Bir demet koleksiyonu üzerinde döngü kurarken her öğeyi doğrudan foreach başlığında ayrıştırabilirsiniz.

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pairs = new List<(string, int)>
        {
            ("Ann", 30),
            ("Bob", 25)
        };
        foreach (var (name, age) in pairs)
            Console.WriteLine(name + " is " + age);
    }
}

Birleştirelim

Ayrıştırma, birden çok değer döndüren veya depolayan kodun temiz okunmasını sağlar; her bölüme kullanım noktasında ad verirsiniz.

using System;

class Program
{
    static (int Quotient, int Remainder) Divide(int a, int b) => (a / b, a % b);

    static void Main()
    {
        var (q, r) = Divide(17, 5);
        Console.WriteLine("17 / 5 = " + q + " remainder " + r);
    }
}

Kısa Kontrol

Ayrıştırmayı anlayıp anlamadığınızı sınayın.

Özet

Ayrıştırma, bir demeti veya nesneyi tek bir ifadede adlandırılmış değişkenlere böler. var (a, b) = ... kullanın, bölümleri _ ile yok sayın, değişkenleri değiş tokuş edin ve foreach içinde ayrıştırma yapın. Özel sınıflar, isteğe bağlı olarak aşırı yüklenebilen ve out parametreleri kullanan bir Deconstruct yöntemiyle bu özelliği destekler.

using System;

class Program
{
    static void Main()
    {
        var (a, b, c) = (1, 2, 3);
        Console.WriteLine(a + b + c);
    }
}

Sıkça Sorulan Sorular

“Yapı Bozma” dersi ücretsiz mi?

Evet — “Yapı Bozma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 4 dersten oluşur.

“Yapı Bozma” dersinde ne öğreneceğim?

Tuple'ları ayrı değişkenlere açın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Yapı Bozma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Değer Tuple'larının Temelleri
  2. Adlandırılmış Tuple Öğeleri
  3. Yapı Bozma
  4. Yöntemlerin Dönüş Değeri Olarak Tuple'lar
← C# Academy Sayfasına Dön