C# Academy · Ders

C#'ta Jenerikler

Jeneriklerin tür güvenli ve yeniden kullanılabilir kod yapıları oluşturmayı nasıl sağladığını öğrenin

1. ders / 510 adım

C#'ta Jenerikler, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 5 dersinin 1. 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 5 dersten oluşur.

Genel Türlere Giriş

C#'ta Genel Türler

"Gelişmiş C# Özellikleri" kapsamındaki ilk derse hoş geldiniz! Bu derste, esnek ve yeniden kullanılabilir kod oluşturmanızı sağlayan güçlü bir C# özelliği olan genel türleri öğreneceksiniz. Başlayalım!

C#'ta Jenerikler — resim 1

Genel Türler Nelerdir?

Genel türler, depoladıkları veya kullandıkları veri türü için yer tutucu içeren sınıflar, yöntemler ve veri yapıları tanımlamanızı sağlayan bir C# özelliğidir. Genel türler, tür güvenliği ve kodun yeniden kullanılmasını sağlar.

Örnek: Genel bir liste (List<T>), tür güvenliğini korurken her türden öğeyi depolayabilir.

Genel Türde Sınıflar Oluşturma

<T> söz dizimini kullanarak genel türde bir sınıf tanımlayabilirsiniz; burada T bir tür parametresini temsil eder. Örnek:

Önemli Nokta: Tür güvenliğini korurken her veri türüyle çalışabilen sınıflar oluşturmak için genel türleri kullanın.

using System;

class GenericBox<T> {
    public T Value { get; set; }

    public void Display() {
        Console.WriteLine("Value: " + Value);
    }
}

class Program {
    static void Main() {
        GenericBox<int> intBox = new GenericBox<int> { Value = 42 };
        intBox.Display(); // Outputs: Value: 42

        GenericBox<string> stringBox = new GenericBox<string> { Value = "Hello, Generics!" };
        stringBox.Display(); // Outputs: Value: Hello, Generics!
    }
}

Genel Türde Yöntemler Oluşturma

Bir sınıf içinde genel türde bir yöntem tanımlayabilirsiniz. Örnek:

İpucu: Birden çok veri türüne uygulanabilen işlemler için genel türde yöntemler kullanın.

using System;

class Program {
    static void Main() {
        PrintValue(42);
        PrintValue("Generics are powerful!");
    }

    static void PrintValue<T>(T value) {
        Console.WriteLine("Value: " + value);
    }
}

Genel Tür Kısıtlamaları

Kısıtlamalar, tür parametresi olarak kullanılabilecek türleri sınırlar. Örnek:

  • where T : struct - T bir değer türü olmalıdır.
  • where T : class - T bir başvuru türü olmalıdır.
  • where T : new() - T parametresiz bir oluşturucuya sahip olmalıdır.

Örnek:

Önemli Nokta: Kısıtlamalar, genel türleri daha esnek ve belirli senaryolara daha uygun hâle getirir.

using System;

class Program {
    static void Main() {
        DisplayDefault<int>();
        DisplayDefault<string>();
    }

    static void DisplayDefault<T>() where T : new() {
        T instance = new T();
        Console.WriteLine("Created instance of: " + typeof(T));
    }
}

Genel Tür Koleksiyonları

C#, yerleşik olarak çeşitli genel tür koleksiyonları sağlar:

  • List<T>: Öğelerden oluşan bir koleksiyonu dinamik bir dizide depolar.
  • Dictionary<TKey, TValue>: Hızlı aramalar için anahtar-değer çiftlerini depolar.
  • Queue<T>: İlk Giren, İlk Çıkar (FIFO) yapısını uygular.

Örnek: Genel türde bir liste kullanma:

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
        names.Add("Diana");

        foreach (string name in names) {
            Console.WriteLine(name);
        }
    }
}

Uygulama Alıştırması

Bir anahtar-değer çifti depolayan Pair<TKey, TValue> genel türde sınıfı ve anahtarla değeri yer değiştiren Swap() genel türde yöntemini oluşturun. Örnek:

using System;

class Pair<TKey, TValue> {
    public TKey Key { get; set; }
    public TValue Value { get; set; }

    public void Swap() {
        (Key, Value) = ((TKey)(object)Value, (TValue)(object)Key);
    }

    public void Display() {
        Console.WriteLine($"Key: {Key}, Value: {Value}");
    }
}

class Program {
    static void Main() {
        Pair<string, int> pair = new Pair<string, int> { Key = "Age", Value = 30 };
        pair.Display();
        pair.Swap();
        pair.Display();
    }
}

Genel Türleri Kullanırken En İyi Uygulamalar

İşte bazı en iyi uygulamalar:

  • Yeniden kullanılabilir ve tür güvenli sınıflar ile yöntemler oluşturmak için genel türleri kullanın.
  • Belirli tür gereksinimleri olduğunda kısıtlamalar uygulayın.
  • Performans ve güvenlik açısından genel tür kullanmayan koleksiyonlar yerine genel tür koleksiyonlarını tercih edin.

İpucu: Tür parametreleri için türü belirten T veya anahtar-değer çiftleri için TKey ve TValue gibi anlamlı adlar kullanın.

Tebrikler!

Tebrikler! C# dilinde yeniden kullanılabilir ve esnek kod oluşturmak için genel türleri nasıl kullanacağınızı öğrendiniz. Bir sonraki derste async ve await ile asenkron programlamayı inceleyeceğiz. Kod yazmaya devam edelim!

C#'ta Jenerikler — resim 10
Başlamak ücretsiz

Yapay zeka eğitmeniyle C# öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
93
Dersler
346

Sıkça Sorulan Sorular

“C#'ta Jenerikler” dersi ücretsiz mi?

Evet — “C#'ta Jenerikler” 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 5 dersten oluşur.

“C#'ta Jenerikler” dersinde ne öğreneceğim?

Jeneriklerin tür güvenli ve yeniden kullanılabilir kod yapıları oluşturmayı nasıl sağladığını öğrenin 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, 5 dersinin 1. dersidir.

“C#'ta Jenerikler” 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. C#'ta Jenerikler
  2. Async ve Await: Asenkron Kodla Çalışma
  3. İş Parçacıklarını ve Görevleri Anlama
  4. Temsilcileri ve Lambda'ları Keşfetme
  5. C#'ta Yansımayı Anlama
← C# Academy Sayfasına Dön