Extension Metot Kullanımı-C#

Herkese Merhabalar. Bugün Extension Metot Kullanımı konusu ile ilgili edindiğim bilgileri sizlere aktarmaya çalışacağım. Faydalı olması dileğiyle.

  • Extend etmek kelime anlamı olarak , bir şeyleri genişletmek anlamına gelir. Extension metotun da amacı aslında varolanı bozmadan veya derlemeden genişletme işleminin sağlanabilmesini gerçekleştirmektir.
  • Extension metotlar static metotlardır.

Basit bir Extension metot örneği

  • Matematiksel Hesaplama adında bir sınıfımız olsun. Bu sınıf, içerisinde Topla ve Bol olmak üzere iki adet metot içermektedir.

/media/64460a6ebc7339695a533225f50895ad

  • Bu metotlar geri dönüş değeri olarak integer değer döndüren ve matematiksel bir işlem gerçekleştiren iki adet metottur.
  • Ancak bir zaman sonra toplama ve bölme işlemi dışında çıkarma ve çarpma işlemlerinin de bu sınıfa dahil edilmesi istenebilir.
  • Bunun için varolan metot üzerinde derleme veya değişiklik yapmak yerine, Extension metotlar kullanılabilir.
  • Extension bir metot oluşturmanın ilk kurallarından biri, oluşturulacak olan sınıfın ve sınıf içerisindeki metotların Static olması gerektiğidir.
  • MathExtension adında Static bir sınıf oluşturalım.

/media/3e5dbaad5eb517af40450a7502bfca3a

  • MathExtension sınıfının içerisine istenen Çıkarma ve Çarpma metotlarını dahil edelim.
  • Extension metotları diğer metotlardan ayıran önemli bir keyword bulunmaktadır. Bu keyword This Keyword olarak geçmektedir. Hangi class genişletilecekse, o class This Keyword ile belirtilmelidir. This Keyword kullanıldığında artık o metot için “Extension Metot” tur denilebilir.

/media/e1307858eda26cbc5b5208b2e79f2077

  • Static alanda artık ; MatematikselHesaplama classı tanımlanıp , içerisindeki metotlar çağrıldığında Topla ve Bol metotları dışında Cikar ve Carp metotlarının dageldiğini göreceksiniz.

/media/c790f68fd454044f6296fb71aa05b974

Veee böylece, Extension metot yazma işleminiz başarıyla tamamlanmış oldu:)

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

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir