using deyimi
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
-
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.
-
using bildirimini tamamla
using ____ r = new Reader();Cevabı göster
using var r = new Reader(); -
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