C# using Kelimesi Alternatif Kullanım

Genelde veritabanı işlemleri yaparken bağlantı ve komut nesneleri için Dispose metodu çağırılması çoğu zaman unutulur. Aynı zamanda tüm veritabanı işlerinin try-catch-finally blokları içinde yapılması gereği de atlanılan konulardandır.

Özellikle programlamaya yeni adım atan kişiler bu noktaların öneminin farkında olmayabilirler ve tıpkı bizim de geçmişte yaptığımız gibi aşağıdakine benzer kodlar geliştirebilirler.

    1 SqlConnection cn = new SqlConnection(connectionString);

    2 SqlCommand cm = new SqlCommand(commandString, cn);

    3 cn.Open();

    4 cm.ExecuteNonQuery();

    5 cn.Close();

SqlConnection ve SqlCommand nesneleri IDisposable arayüzünü geliştirir ve IDisposable arayüzünü geliştiren bir nesne yönetilmeyen kaynaklara sahip olabilir. Yönetilmeyen kaynakların boşaltılması programcı olarak bizim görevimizdir.

Şimdiye kadar using kelimesini namespace tanımlamakta kullandıysanız artık bir adım ileri giderek IDisposable arayüzünü geliştiren bir nesnenin dispose edilmesini garantilemek için using bloklarını kullanabilirsiniz. Using bloku ile tanımlanan faaliyet alanı (scope) bittiğinde ilgili nesne otomatik olarak dispose edilir.

    1 using (SqlConnection cn = new SqlConnection(connectionString))

    2 {

    3     using (SqlCommand cm = new SqlCommand(commandString, cn))

    4     {

    5         cn.Open();

    6         cm.ExecuteNonQuery();

    7     }

    8 }


Yukarıda geliştirdiğimiz kod ile aşağıdaki kodun işlevini geçekleştirmiş oluruz.

    1 SqlConnection cn = null;

    2 SqlCommand cm = null;

    3 try

    4 {

    5     cn = new SqlConnection(connectionString);

    6     cm = new SqlCommand(commandString, cn);

    7     cn.Open();

    8     cm.ExecuteNonQuery();

    9 }

   10 finally

   11 {

   12     if (null != cm)

   13         cm.Dispose();

   14     if (null != cn)

   15         cn.Dispose();

   16 }

   17 

Yazı oluşturuldu 141

Bir yanıt yazın

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön