tolpp.com
yazılım ve programlama günlüğü

C# - CSharp delegasyonlar (delegeler [delegates]) - 1 Jul 25, 2011

Delegeler, birçok programlama dilindeki function pointer’ların C# karşılığı olarak düşünülebilir. Bu pointerlar vasıtasıyla, istediğimiz bir değişkene fonksiyonun geri döndürdüğü değeri değil, fonksiyonun kendisi (aslında fonksiyonun belekteki yeri) atanmış olur. Event mekanizmaları tasarlanırken sıkça kullanılan function pointer, typesafe olmadığından birçok problemlere yol açabilir. C# içindeki delegeler ise typesafetir.

Madem temelde sıradan metodlar gibi, peki neden delegate kullanılır?

  • Delegeler ile birden fazla metodu aynı anda kullanabiliriz.
  • Anonim metodlar ile daha kısa kodlar yazarız.
  • Async Delegate kullaranarak, metodların asenkron olarak çalışmasını sağlayabiliriz.
  • Delegeleri dizi şeklinde tutarak, metodların döngülerle çağırılmasını sağlayabiliriz.

Örnek bir delege kullanımı :

Delegeler hakkında bir sonraki yazı : CSharp delegates - 2