C# 3.0 Yenilikleri

C# 3.0 Yenilikleri

İlk yazımı uzun süredir uğraştığım bir konuyla alakalı olarak girmek istedim.Buyrun C# 3.0 !

Öncelikle C# 3.0 ile C# diline neler eklenmiş onları görelim.

1.Bölüm

1)     Belirtilmemiş Tipte Değişkenler (Implicitly Typed Variables)

2)     İlave Metodlar (Extension Methods)

2.Bölüm

3)      Yeni Nesne İlklendirme Metodları (Object and Collection Initializers)

4)      Belirsiz (Adsız) Tipler (Anonymous Types)

5)      Belirtilmemiş Tipte Diziler (Implicitly Typed Arrays)

3. Bölüm

6)      Lambda  Tanımları(Lambda Expressions)

7)      Tanım Ağaçları (Expression Trees)

4.Bölüm

8)      Yeni Veritabanı  Sorgulama Tanımları (LINQ, XLINQ ve DLINQ)

Burdaki bölümden kasıt aralıklarla eklemek istediğim başlıklardır.Şu durumda 1. bölüm ile başlayalım.

1        Belirtilmemiş Tipte  Değişkenler (Implicitly Typed Variables)

Belirtilmemiş tipte değişkenler var niteleyicisi ile tanımlanan ve derleme esnasında  derleyicinin tipinin ne olduğuna karar verdiği değişkenlerdir. Derleyicinin bu kararı verirken  yazılımı esnasında uyulması gereken bazı kurallar vardır.Tipi belirtilmeden tanımlanan bir değişken  herhangi bir tipteki nesne veya nesneler dizisine eşlenerek tip atamasına tabi tutulur.

 

Kullanımı :

 

var SehirAd_1 = "İstanbul"; //string

var SehirAd_2 = "Ankara";   //string

var SehirAd_3 = "İzmir";    //string

var IstanbulPlakaKod = 34; //int

var Sehirler = new string[] {SehirAd_1, SehirAd_2, SehirAd_3}; //string dizisi

foreach (var SehirAd in Sehirler)

{

MessageBox.Show(SehirAd);

}

Bu örnekte dikkati çekecek olan bir diğer önemli nokta değişkenleri tanımlamanın yanısıra herhangi bir koleksiyon içerisinde foreach ile dönerek nesneleri var tanımıyla alabilmemizdir.

Ne Getiriyor ?

var niteleyicisinin C# 3.0 Yenilikler dizisinin ilerleyen bölümlerinde bahsedilecek olan LINQ ile birlikteliği özellikle bu tip sorgulardan dönen sonuçların uygulama içerisinde kullanımında kolaylık oluşturmaktadır.

var Sehirler = from SehirAd in SehirListesi

               select SehirAd;

Yine daha sonraki bölümlerde incelenecek olan Anonymous Types (Belirsiz Tipler) ve Implicitly Typed Arrays (Belirtilmemiş Tipte Diziler) i kullanırken var niteleyicisine ihtiyaç duyacağız.-     Belirsiz Tipler için örnek -      var Ilce1 = new { Ad = "Şişli",Nufus = 2000000}; -     Belirtilmemiş Tipte Diziler’e örnek -               var stringDizisi = new[] {"CSHARP","3.0"};

C# 3.0 ile yeni bir anlam kazanan var niteleyicisi daha önceden kullanılan var ile aynı kullanıma sahip değil.Önceki VB6 kullanımında herhangi bir tipte olabilen ve memory de oldukça yer kaplayan bu değişken tanımlaması C# 3.0 içerisinde kendi tipini derleme esnasında alıyor ve uygulamaya ekstra bir yük bindirmiyor.

 

Zorunluluklar :

                                I.            Belirtilmemiş tipte değişkenler tanımlarken mutlaka bir  nesne ile ilklendirilmelidir.

var integerTanimi = 2007;

               var stringTanimi = "İkiBinYedi";

                             II.            İlklendirici mutlaka tanımlanmalıdır.Tipinin ne olduğu bilinmelidir.                 

var integerTanimi = 2007; //derleme sırasında int

               var stringTanimi = "İkiBinYedi"; //derleme sırasında string

                           III.            Belirtilmemiş tipte değişkenler “null” olarak tanımlanmamalıdır.

 

   var integerTanimi = null; //Hata : Cannot infer local variable type from "null"

 

                          IV.            Belirtilmemiş tipte değişkenler sürekli olarak aynı tipte değişkenlik durumunu korumalıdır.

   var integerTanimi = 2007;

   var integerTanimi = "İkiBinYedi"; //Hata : Cannot implicitly convert type "string" to "int"

 

 

 

 

İlk yazımı ve bugünkü bölümü böylece bitirmiş oluyoruz.Beraber devam edebilmek dileğiyle !...

Hardware TIM [ Sky_Lab ]

Döküman Arama

Başlık :

Kapat