Asp.Net Dersleri 149 0

Recursive Method Nedir ? Nasıl Kullanılır ?

Merhaba arkadaşlar, bu makalede sizlere programlama dillerinin vazgeçilmezi recursive methodların nasıl çalıştığını ve asp.net dilinde nasıl kullanılabileceğinden bahsedeceğim.

Recursive Method Nedir ?

Bu tür methodlar için birbiri ardına tekrarlanan methodlar diyebiliriz. Şöyle ki, sizin 3 tane kategoriniz olsun ve bu 3 kategorinin her birinin alt alta 3 ayrı kategorisi olsun. Bu kategorileri web sitenizde yazdırmak istediğinizde alt kategori özelliğine göre şekillendirmek isterseniz recursive method kullanmanız gerekir.

Yapısıda şu şekilde olacaktır;

  • Kategori 1
    • Alt Kategori 1
    • Alt Kategori 2
    • Alt Kategori 3
  • Kategori 2
    • Alt Kategori 1
    • Alt Kategori 2
    • Alt Kategori 3
  • Kategori 3
    • Alt Kategori 1
    • Alt Kategori 2
    • Alt Kategori 3

şeklinde ekrana yazdırabileceksiniz. Şimdi az çok, gerek devrik cümlelerimle gerekse şahesere yakın anlatımımla sizlere recursive methodların ne olduğunu anlatmaya çalıştım. Şimdi gelin asp.net ile recursive method kullanımına örnek verelim.

Aslında internette örneği genelde faktöriyel hesaplamadır. Ben sizin daha çok işinize yarayacak bir şekilde anlatacağım. Alt alta sınırsız kategori listeleme işlemini anlatacağım.

Öncelikle sayfamıza bir TreeView ekleyelim.

ve daha sonrasında ise aşağıdaki recursive method ile içini dolduralım.

Şimdi biz yukarıda ne yaptık ?

İlk olarak Page_Load eventini kullanarak bütün kategorileri bir DataTable yükledik ve aşağıdaki methoda göndererek methodun işlemi kendi içinde çözümleyere gitmesini sağladık. Dikkat ettiyseniz method kendi içinde kendini çağırarak bütün kategorileri TreeView içine yazdırıyor.

Bu işlemden sonra elde edeceğimiz görüntü şu şekilde olacak.

kategoriler-3

Not: Bu sadece bir örnekti. Bana sorarsanız iç içe listeleme konusunda, iç içe repeater kullanmanız hem daha anlaşılır hemde daha kolay olacaktır. Recursive method mantığını “kendi kendini çağıran fonksiyon” olarakta düşünebilirsiniz.

Sormak istediğiniz soru var ise makale altında yorumlayabilirim.

Kaydet

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir