
using
Nedir?
using
, geçici olarak kullanılan nesnelerin (örneğin veri tabanı bağlantısı, dosya, stream vs.) işimiz bittiğinde otomatik olarak bellekte serbest bırakılmasını (silinmesini) sağlar. Bu sayede Close()
veya Dispose()
gibi işlemleri yapmamıza gerek kalmaz, sistem otomatik olarak bizim için bu işlemleri tamamlar.
Ayrıca C#’da Close() ve Dispose() Nedir ve Neden Kullanılır? yazıma buradan ulaşabilirsiniz.
using (var connection = new SqlConnection(connStr))
{
connection.Open(); // Open bile çağırmasan bile using sonunda Dispose çağrılır.
}
// Bağlantı varsa kapatılır, yoksa sadece bellek temizlenir.
using
Neden Kullanılır?
- Kod bloğu bittiğinde otomatik olarak
.Dispose()
çağrılır. - Hem bağlantı kapanır, hem de hafıza temizlenir.
- Kod daha güvenli olur.
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
// işlemler
} // conn.Dispose() otomatik çağrılır
using
Bloğunda Ne Olur?
Bir using
bloğu kullandığında, içeride kullandığın nesne (SqlConnection, FileStream, vs.) işi bittiğinde otomatik olarak:
- Dispose() çağrılır.
- Eğer sınıfın Dispose() içinde Close() çağrısı varsa, o da dolaylı olarak çağrılır.
public class SqlConnection : DbConnection
{
public override void Dispose()
{
// İçeride:
// this.Close(); gibi bir şey varsa çağrılmış olur.
}
}
Peki Fark Nerede?
Dispose()
asıl garantili olan ve .NET standardıdır.Close()
ise çoğu kaynak sınıfındaDispose()
içinde zaten çağrılır.
C#’da using Nedir ve Neden Kullanılır konusunu ele almaya çalıştım. Bu içerik benim için sürekli referans olacak ve elimden geldiğince güncellemeye çalışacağım. İçeriğe katkı sağlamak isterseniz, yorum yazmaktan çekinmeyiniz.
Gönderilere yorum yazabilir, linkedin veya @huseyineskan instagram hesabımdan benimle iletişime geçebilirsiniz.
Yazılım kategorisine buradan göz atabilirsiniz.