" Umut, hiç görmeyen birine gökkuşağını anlatmak kadar zor ve imkansız... "

Categories

-

Asp.Net Fonksiyonlar,Alt Programlar !!!

Programlar farkli islemleri yerine getirmekten sorumlu alt programlardan olusur. Ana programla alt programlar arasindaki çalisma iliskisini basitçe su sekilde özetleyebiliriz:

Programin kodlarinin çalismasi esnasinda hangi islem gerçeklestirilecekse o islemden sorumlu alt program çalistirilir. Alt programin çalismasi bittikten sonra ana program kodlari çalistirilmaya devam edilir. Ayrica bir alt programdan baska bir alt program da çagrilabilir.

Programlarin alt programlardan olusmasinin çesitli yararlari vardir. Programlarda bazi islemler birden fazla gerçeklestirilir. Islemin gerçeklestirilecegi her yerde kodlari tekrar tekrar yazmaktansa kodlar alt program içine yazilir ve ne zaman bu kodlara ihtiyaç duyulursa alt program çagrilir ve kodlar çalistirilir.

Böylelikle alt programlar fazladan ve gereksiz kod yazimini azaltarak programlarin daha küçük boyutlu olmalarini saglar.

Alt programlarin kullanimini modüllerimizdeki sözlük bölümünün kullanimina benzetebiliriz. Modülü okumaya baslariz, karsimiza bilmedigimiz Ingilizce bir kelime çikinca sözlük bölümüne geçer, kelimenin Türkçe’sine bakar, tekrar kaldigimiz yerden okumaya devam ederiz. Okumaya devam ettikçe bilmedigimiz Ingilizce bir kelimeye her rastladigimizda sözlükten kelimenin anlamini ögrenir, ardindan modüle kaldigimiz yerden devam ederiz. Ingilizce kelimenin her geçtigi yerde Türkçe açiklamasini yazmakla ugrasmayiz.

Alt programlarin diger bir yarari karmasik, zor bir problemin çözümü için hazirlanan programin daha küçük parçalara ayrilmasini saglamasidir. Ayrica programda bir hata oldugunda programin hepsiyle ugrasmaktansa sadece hatali olan alt programla ugrasilarak zaman ve emekten tasarruf saglanmis olunur.

Programcilikta alt program kavramini ifade etmek için alt rutin, fonksiyon, prosedür, yordam kelimeleri de kullanilmaktadir. Alt programlar farkli programlama dillerinde farkli isimlerle kullanilirlar. VB.NET, belirli bir görevi, islemi gerçeklestirmek için kullanilan ve ana programa bir deger döndürmeyen alt programlar için Subroutine kelimesini (kisaca Sub), ana programa bir deger geri döndüren alt programlar için ise Function kelimesini kullanir.

Alt Programlar (Subroutines)

Bir eylemi yerine getirmek için kullanilan, ana programa deger göndermeyen alt programlara VB.NET’te subroutine adi verilir. Yazim biçimi asagidaki sekildedir :

Sub isim [parametreler]

Kodlar

End Sub

Alt program olusturma islemi Subroutine kelimesinin kisaltilmis hâli olan Sub kelimesiyle baslar. Ardindan alt programin ismi yazilir ve istenirse parantez içerisinde parametreler belirtilir. Parametreler sayesinde ana programdan veriler alt programa aktarilir.

Eger, gerçeklestirilen islem sonucunda geriye deger dönüsü istenmiyor ise Sub, geriye deger dönüsü isteniyorsa Function yapisi kullanilir...

Alt programlar, parametreler vasitasiyla alt program disindan degerler alir. Asagida bu durumla ilgili bir örnek verilmistir.

Parametre kullanimi zorunlu degildir. Son olarak kodlar yazilir ve end sub ifadesiyle alt program sonlandirilir. Alt programlarin kullanimiyla ilgili olarak toplama ve çikarma islemi yapmayi saglayan basit bir örnek yapalim.

Programimizin arayüzü ve kodlar :

Partial Class _Default
    Inherits System.Web.UI.Page
    Dim sonuc As Integer
    
    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If islem1.checked Then Toplama(sayi1.text, sayi2.text)
        If islem2.Checked Then cikarma(sayi1.Text, sayi2.Text)
        If islem3.Checked Then carpma(sayi1.Text, sayi2.Text)
        If islem4.Checked Then bolme(sayi1.Text, sayi2.Text)
    End Sub
    
    Sub toplama(deger1 As Integer, deger2 As Integer)
        sonuc = deger1 + deger2
        sonuc_kutusu.Enabled = True
        sonuc_kutusu.Text = sonuc
    End Sub
    Sub cikarma(deger1 As Integer, deger2 As Integer)
        sonuc = deger1 - deger2
        sonuc_kutusu.Enabled = True
        sonuc_kutusu.Text = sonuc
    End Sub
    Sub bolme(deger1 As Integer, deger2 As Integer)
        sonuc = deger1 * deger2
        sonuc_kutusu.Enabled = True
        sonuc_kutusu.Text = sonuc
    End Sub
    Sub carpma(deger1 As Integer, deger2 As Integer)
        sonuc = deger1 / deger2
        sonuc_kutusu.Enabled = True
        sonuc_kutusu.Text = sonuc
    End Sub
    Sub goster(sender As Object)
        Button1.Visible = True
        Button2.Visible = True
        Button3.Visible = True
    End Sub

    Protected Sub Button4_Click(sender As Object, e As System.EventArgs) Handles Button4.Click
        goster(sender)
    End Sub
    Sub gizle(sender As Object)
        sender.visible = False
    End Sub
    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        gizle(sender)
    End Sub
End Class

Topla Checkbox;zina tiklandiginda  islem1;in check edilip edilmedigi kontrolü gerçeklesiyor. Hangi kosul dogruysa ilgili subroutine 2 parametreyle çagiriliyor. Bu örnegimizdeki parametrelerimiz textbox’larin içerisine girilen degerler. Yani sayi1.text ve sayi2.text. Toplama ve Cikarma olarak olusturdugumuz 2 alt program, 2 parametre aliyor( hangi sirayla oldugu önemli ). Ve aldigi bu parametrelerle gerekli islemi gerçeklestirip, sonuckutusu.text ‘ e degeri atiyor. Yukaridaki örnekte if bloguyla kontrolü yapip ona göre islemleri de gerçeklestirebilirdik. Ancak yazdigimiz programlar uzadikça isler çok ama çok karisik bir hal alir bu yüzden alt programlanin mantigini çok iyi oturtmak gerekmektedir.

ve birde parametreler vasitasi ile bir deger alalim bu islemi class dosyamizda gerçeklestirelim....

Class1 dosyamiz ve içerigi;

Imports Microsoft.VisualBasic

Public

Class Class1

Public Sub özellik(ByVal ifade As Integer)

If ifade = 1 Then

MsgBox("Girilen deger 1", MsgBoxStyle.Information, "Uyari")

Else

MsgBox("1 degeri girmediniz", MsgBoxStyle.Exclamation, "Uyari")

End If

End Sub

End

Class

.aspx dosyamiz ve içerigi

Partial Class _Default

Inherits System.Web.UI.Page

Dim sonuc As Integer

Dim t_class As New Class1

Protected

Sub s_btn_Click(sender As Object, e As System.EventArgs) Handles s_btn.Click

t_class.özellik(TextBox1.Text)

End Sub

End Class

Örnek çalismayi buradan indirebilirsiniz...

Fonksiyonlar (Functions)

Alt programlarla benzer isleyisine sahip olan fonksiyonlarin alt programlardan farki,ana programa deger döndürmesidir. Alt programlar, tek baslarina bir eylemi yerine getirir,fonksiyonlar ise sadece çagrildiklari yere deger gönderirler. Fonksiyonlarin yazim biçimi asagidaki gibidir:

Function isim (parametreler) as veri tipi

Kodlar

End Function

Fonksiyon tanimlamasinda parametrelerden sonraki veri türü, döndürülecek verinin türünü tanimlamaktadir. Alt program kullanarak yaptigimiz toplaCikar.aspx uygulamasini simdi de fonksiyonlarla yapalim.

Partial

Class _Default

Inherits System.Web.UI.Page

Dim sonuc As Integer

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

If islem1.Checked = True Then sonuckutusu.Text = topla(TextBox1.Text, TextBox2.Text)

End Sub

Function topla(ByVal deger1 As Integer, ByVal deger2 As Integer) As Integer

sonuc = deger1 + deger2

Return sonuc

End Function

End Class

ve birde KrakterDüzelt fonksiyonumuzu inceleyelim...

Partial

Class _Default

Inherits System.Web.UI.Page

Dim sonuc As Integer

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

End Sub

Public Shared Function KarakterDuzelt(ByVal kelime As String) As String

Dim sonuc1 As String = kelime.Replace(" ", "_").Replace("ç", "c").Replace("g", "g").Replace("ü", "u").Replace("s", "s").Replace("""", "").Replace("ö", "o").Replace("i", "i").Replace("I", "i").Replace("I", "i").Replace("?", "_").Replace("Ü", "u").Replace("Ç", "c").Replace("G", "g").Replace("&", "_").Replace("-", "_").ToLower().Replace("'", "").Replace("(", "").Replace(")", "").Replace("/", "_").Replace(":", "_")

Return sonuc1

End Function

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click

Dim deneme1 As String

deneme1 = KarakterDuzelt(TextBox3.Text)

TextBox4.Text = deneme1

End Sub

End Class

' Karakter düzenle fonksiyonumuza Textbox3.Text;e içerilen degeri gönderiyor… Fonksiyon içerisindeki Dim sonuc as String = kelime.Replace programi çalistirilip ç harfini c harfine düzelterek sonuc1 degiskeni ile krakterdüzelt fonksiyonuna tekrar gönderiyor ve textbox3 deki ç harfi c harfine çevrilerek deneme1 degiskenine aktariyor oda Textbox4.Text;de yazdirma islemini gerçeklestiriyor...

Fonksiyonumuzu bir class üzerinden erismek istersek eger , bir örnek uygulama ile onuda anlatalim...

projemize bir Class(Sinif) dosyamizi ekliyoruz.

Class1 adindan class dosyamiz...

Imports Microsoft.VisualBasic

Public

Class Class1

Public Function Toplama(ByVal sayi1 As Integer, ByVal sayi2 As Integer) As Integer

Dim topla As Integer = sayi1 + sayi2

Return topla

End Function

End Class

.aspx dosyamizdan ise olusturdugumuz class dosyamizi cagirarak islemlerimizi gerçeklestiriyoruz...

Partial Class _Default

Inherits System.Web.UI.Page

Dim sonuc As Integer

Dim t_class As New Class1

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

If islem3.Checked = True Then sonuckutusu.Text = t_class.Toplama(TextBox1.Text, TextBox2.Text)

End Sub

ve islem sonucumuza bakiyoruz...

function ve Subroutines kavraminin genel olarak kullanimi bu sekildedir...

Örnek çalismayi buradan indirebilirsiniz.

  • 0
  • 1178
  • 0

- BUNLARIDA GÖZDEN GEÇİREBİLİRSİNİZ -

HENÜZ YORUM YAPILMAMIŞ !

Yorum yazın

HAKKIMDA

KONULARI TAKİP EDİN

SOSYAL AĞLAR

  • Mesajınızı Gonderin