delegate

Delegates, Anonymous Methods, Lambda Expressions (Delegeler, Anonim/İsimsiz Metodlar, Lambda İfadeleri)

Delegates (Delegeler)

Delegeleri motodların referanslarını tutan akıllı konteynırlar olarak tanımlayabiliriz. Delegeler bir yada birden çok metodun referansını içerebilmektedir.
Delege instance’ı tarafından çağırılacak metod delegeye register edilerek kullanılmaktadır. Delegeler static metodlar yada herhangi bir class instance’ı üzerinden erişilen metodların referanslarını tutar. Bir motod delegeye register edildiğinde delege kendi iç (internal collection) koleksiyonuna method referansını ekler (delegate’s “invocation list).

Delege instance’ları referans ettikleri metodları senkron yada ansenkron olarak çağırabilmektedir.

Bir delege asenkron olarak çağırıldığında thread pool’dan ayrı bir thread tarafından çalıştırılır. Delege instance invoke (call) edildiğinde referans ettiği tüm metodlar delege tarafından atomatik olarak çağırılır.

Delegeler sadece herhangi bir metodun referansını içermez, delege tanımında tanımlı olan signature’ı (dönüş tipi ve aldığı argümanlara) aynı olan metodların referanslarını tutar.

(daha&helliip;)