CodeBlanks Logo Icon CodeBlanks

Generic sınıf

C# kursu · Orta seviye · Ders 70/116

<T> ile generic sınıf tanımlamayı öğrenirsin.

Generic sınıf nedir?

Bir generic sınıf (genel sınıf), bir tür parametresi ile tanımlanır. T harfi en yaygın parametre adıdır; yer tutucu bir türdür. class Box<T> yazısı, Box sınıfının herhangi bir türle çalışabileceğini bildirir.

Kullanırken somut bir tür verirsin: Box<int> tam sayı kutusu, Box<string> metin kutusu olur. Derleyici her somutlaştırma için ayrı bir tür üretir; böylece tip güvenliği sağlanır ve kutulama (boxing) önlenir. Generic sınıflar, kod tekrarını azaltırken güvenliği korur.

Aynı sınıf, farklı türler

Bir generic sınıf tanımladıktan sonra onu istediğin türle somutlaştırabilirsin. Box<int> ve Box<string> aynı şablondan üretilmiş ama farklı türlere sahip örneklerdir.

İçerideki T Value özelliği, somut türle değişir: Box<int>'ta int Value, Box<string>'de string Value olur. Böylece derleyici yanlış tür atamasını derleme anında yakalar. Generic olmayan bir çözümde bu güvenlik olmazdı.

Uygulama Box<T> sınıfını tanımla

Box<T> generic sınıfını tanımla; public T Value { get; set; } özelliği olsun. Main içinde Box<int> ve Box<string> örnekleri üret; Value'lara 42 ve "Merhaba" ata. Her ikisinin Value'sunu Console.WriteLine ile yaz.

Örnek çözümü göster
class Box<T> { public T Value { get; set; } } yaz. Main'de var intBox = new Box<int> { Value = 42 }; var strBox = new Box<string> { Value = "Merhaba" }; Console.WriteLine(intBox.Value); Console.WriteLine(strBox.Value); ekle.
Örnek çözüm:
using System;

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

class Program
{
    static void Main()
    {
        var intBox = new Box<int> { Value = 42 };
        var strBox = new Box<string> { Value = "Merhaba" };
        Console.WriteLine(intBox.Value);
        Console.WriteLine(strBox.Value);
    }
}

Kendini test et

  1. Box<T> sınıfı nasıl bildirilir?

    • class Box<T> { }
    • class Box<T> T { }
    • class Box(T) { }
    • class Box : T { }
    Cevabı göster

    class Box<T> { } — Doğru. Tür parametresi sınıf adından sonra < > içinde yazılır.

  2. Tür parametresi harfi

    class Box<____> { public T Value { get; set; } }
    Cevabı göster
    class Box<T> { public T Value { get; set; } }
  3. Generic parçayı anlamına eşle

    <T>
    Tür parametresi
    Box<int>
    Somut örnek
    T Value
    Tür parametreli özellik
    new Box<T>()
    Örnek üretimi

Orta seviye bölümündeki tüm dersler