C# Action ve Action ön tanımlı delege türü

22 Ara

Delegeler ile ilgili yazımızda delegeleri tanımlamayı ve kullanmayı incelemiştik. Delegelerin metodları temsil ettiğini ve hangi tür metodların temsil edileceğini ise delegeler oluşturulurken belirlendiğini görmüştük.

Ardından Func<T> ile ilgili yazımızda önceden tanımlanmış delege türü olan Func<T> delege türlerini incelemiştik. Func<T> ile temsil edilen metodların mutlaka bir değer döndürdüğünü belirtimştik.

Bu yazımızda ise delegelerin bir başka özel ve ön tanımlı türü olan Action ve Action<T> delege türünü incelemeye çalışacağız.

Action ve Action<T> delege türleri .Net framework 3.5 ile gelen önceden tanımlanmış bir delege türüdür. Action<T> delege türleri Func<T> delegelerinin aksine hiçbir değer döndürmeyen metodları temsil etmektedir. Action delege türü hiçbir parametre almayan ve değer döndürmeyen metodları temsil eder. Adından da anlaşılacağı üzere bir fonksiyonu değil bir eylemi(action) temsil etmektedirler.

Action<T> delegeleri birden fazla parametre alabilecek metodları da temsil edebilecek şekilde tasarlanmıştır.

Action
Action <T>
Action <T1,T2 >
Action <T1,T2,T3>
Action <T1,T2,…,TN>

Her bir T, metodların alacağı parametrelerin tiplerini belirtmektedir. Func<T> gibi Action<T> kullandığımızda delege tanımlamamıza gerek kalmamaktadır.

Action delegelerinin lambda ifadeleriyle göterimini şu şekilde yapabiliriz:

Lambda ifadelerini kullanmadan metod çağırarak action metod kullanımını şu şeklide kullanabiliriz.

Action delege tipinin kullanımına genelde LINQ ifadeleri ile çalışırken rastlarız. LINQ extension metodlarından Action delege parametre alanlara, uygun metodu parametre olarak gönderebiliriz. Buna bir örnek olarak kişilerin bulunduğu bir listedeki isimlerin önüne “Mr” ön ekini getirerek yazdırmayı deneyebiliriz.

List<T> tipinin ForEach extension metodu, string bir parametre alan metodları temsil etmektedir. Listedeki isimlere tek tek “Mr” ön ekinin nasıl getirildiğini bu şekilde görebilmekteyiz.

Bir sonraki yazıda tekrar görüşmek üzere…

2 thoughts on “C# Action ve Action ön tanımlı delege türü

  1. gerçekten bu tarz konuları anlatacak yazılara ihtiyaç vardı. blogunuzda bu yazıyı gördüğümde sevinmiştim 😀 çok teşekkürler

Comments are closed.