17 Mart 2014 Pazartesi

C# Notlarım

Anonim Sınıflar
Anonim sınıfların hepsi object'ten kalıtırlar. Başka bir sınıftan kalıtmak mümkün değildir.

Auto Property
Getter ve Setter modifier alabiliyor. Örnek:
public string foo { get; private set; }
Exception
C# dilinde exception'lar hep birbirlerini sarmalayacak şekilde kullanılıyor. Sebebi ise üst katmanlara doğru çıktıkça alttaki detaylı SQLException yerine StorageException şeklinde daha genel bir hataların kullanılması. Böylece üst katman altta veritabanı yerine başka bir teknoloji kullanılsa bile etkilenmiyor.

Explicit Interface
Arayüz'den kalıtan sınıf arayüzün gerektirdiği metodları saklar. Örnek:

interface IFoo
{
void Foo();
}

class FooImplementation : IFoo
{
void IFoo.Foo()
{
}
}
Named Arguments
Posizyon ile verilen parametrelerden sonra Named Arguments kullanılabilir. Named argument için önce parametre adı sonra iki nokta üstüste kullanılıyor. Örnek'te fontColour ve fontFamily isim ile geçilmiş
myMethod("SomeString" , fontColour: "blue", fontFamily: "Tahoma")
Null Coalescing (null birleştirme)
C# ile null coalescing operatörü kullanılabilir. Örnek:
MyName = s.MyName ?? string.Empty

Switch/Case
C#'ta Delphi'deki gibi aralık verilemiyor!
Case Total of
80..100 : ShowMessage ('You got an A!');
60..79 : ShowMessage ('You got a B!');
50..59 : ShowMessage ('You got a C!');
40..49 : ShowMessage ('You got a D!');
0..39 : ShowMessage ('You got an E...'); 
  end;
Veri Yapıları
Dictionary
OrderedDictionary veriyi tree gibi sıralı tutar.

Thread Safe Veri Yapıları
Bu sınıflar System.Collections.Concurrent altında bulunuyor
BlockingCollection
ConcurrentBag
ConcurrentDictionary
ConcurrentDictionary
ConcurrentQueue
ConcurrentStack


Hiç yorum yok:

Yorum Gönder