C# using Kullanımı

Merhaba Arkadaşlar;

Uzun bir aradan sonra blogumda yazmaya başlıyorum. Bugün C# using kullanımına, nasıl kullanıldığına ve niçin kullanıldığına bir göz atalım.

C# ‘ta using kullanımı; using directive ve using statement olarak ikiye ayrılır.

USING DIRECTIVE (USING BİLDİRİMİ)

Namespace’leri dahil ettiğimiz ismini yazmadan içinde bulunan sınıfları (class) kullandığımız yapıdır. Namespace dışında en üstte şu şekilde tanımlanır: using namespaceadi;

using System;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Collections.Generic.List<int> list = new System.Collections.Generic.List<int>();
        }
    }
}

List sınıfı (class) System.Collections.Generic isim uzayının (namespace) içinde yer alır. using ile dahil etmediğimiz için namespace adını da yazarak çağırmak durumunda kaldık.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            List<int> list = new List<int>();
        }
    }
}

Burada ise System.Collections.Generic isim uzayını dahil ettiğimizden dolayı sadece içinde bulunan List sınıfını çağırarak kullandık.

Aynı zamanda using bildirimi ile dahil ettiğimiz namespace ve namespace içindeki sınıfları adlandırmak içinde kullanılır.

using System;
using Liste = System.Collections.Generic.List<int>;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Liste list = new Liste();
        }
    }
}

Burada System.Collections.Generic.List<int> sınıfını Liste olarak adlandırdık ve bu yüzden o isimle kullandık.

USING STATEMENT (USING İFADESİ)

Bir sınıf kullanıldıktan sonra, çöp toplayıcından (Garbage Collector) önce; IDisposable arayüzünün (interface) Dispose metodunun çalıştırılarak hafızadan (memory) silinmesi işlemidir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SqlConnection con = new SqlConnection()){
                //con kullan
            }
        }
    }
}

Kullanımı bu şekildedir. Sınıf {} içinde kullanılmalıdır.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection con = new SqlConnection(); //Bu kullanım tavsiye edilmez
            using (con){
                //con kullan
            }
        }
    }
}

Bu şekilde kullanımı tavsiye edilmez.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
//Birden fazla değişkenle kullanabilirsiniz
            using (SqlConnection con = new SqlConnection(), con2 = new SqlConnection()) { 
                //con ve con2 kullan
            }
        }
    }
}

Birden fazla değişkenle kullanabilirsiniz.

using ifadesi aslında şu kodun kısa halidir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection con = new SqlConnection();

            try
            {
                //Kodlar
            }
            finally
            {
                if (con != null)
                    ((IDisposable)con).Dispose();
            }
        }
    }
}

Not: using ifadesinin kullanıldığı sınıflar IDisposable arayüzü (interface) içermek zorundadır.

Hayırlı Günler. Sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.