CodeBlanks Logo Icon CodeBlanks

using deyimi

C# kursu · Uzman · Ders 3/47

using deyimi ve using bildirimi ile otomatik dispose öğrenirsin.

using deyimi ve bildirimi

using deyimi (statement), IDisposable bir nesneyi blok sonunda otomatik Dispose eder. using (var r = new Reader()) { /* ... */ } bloğu bitince r.Dispose() çağrılır; istisraya düşse bile.

C# 8'den beri using bildirimi (declaration) daha ksadır: using var r = new Reader(); satırı, r'nin kapsamı bitince otomatik Dispose eder. Her ikisi de aynı işi yapar.

Klasik using deyimi

using deyiminin klasik biçimi parantez ve blok kullanır: using (var r = new Reader()) { /* r'yi kullan */ }. Blok bitince (ister normal ister istisra ile) Dispose çağrılır.

Birden fazla kaynak varsa iç içe using yazılır. Modern kodda using bildirimi tercih edilir; blok gerekmiyorsa daha temizdir.

Uygulama Reader ile using bildirimi

Reader sınıfı IDisposable uygular. public void Dispose() gövdesinde Console.WriteLine("Kapandı"); yaz. Main'de using var r = new Reader(); kullan.

Örnek çözümü göster
public void Dispose() { Console.WriteLine("Kapandı"); } yaz. Main'de using var r = new Reader();
Örnek çözüm:
using System;

class Reader : IDisposable
{
    public void Dispose()
    {
        Console.WriteLine("Kapandı");
    }
}

class Program
{
    static void Main()
    {
        using var r = new Reader();
    }
}

Kendini test et

  1. using bildirimi ne zaman Dispose çağırır?

    • Nesne oluşturulduğunda
    • Yalnızca Main çıkışında
    • GC çalıştığında
    • Kapsamdan çıkıldığında
    Cevabı göster

    Kapsamdan çıkıldığında — Doğru. using bildirimi kapsamdan çıkışta Dispose eder.

  2. using bildirimini tamamla

    using ____ r = new Reader();
    Cevabı göster
    using var r = new Reader();
  3. using biçimlerini eşleştir

    using var r;
    Bildirim (declaration)
    using (var r = ...)
    Deyim (statement)
    Dispose()
    Kaynağı serbest bırakır
    IDisposable
    using için gerekli arayüz

Uzman bölümündeki tüm dersler