Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Visual Basic Fonksiyonlar

Visual Basic yazılımcılarına yeniden merhabalar :)

Önceki Visual Basic makalemizde cast işlemlerini öğrenmiştik ve artık yazılım bilgimizi bir üst seviyeye çıkarmak için metotlar konusunu öğrenme zamanımız geldi.Gerçi şu ana kadar biz zaten metotları kullanıyorduk,mesela MessageBox sınıfına ait olan Show() metodu ile ekrana mesaj kutusu ile mesaj veriyor Form1_Load metodu ile programı başlatıyorduk.

Gördüğünüz gibi metotları zaten kullanıyorduk ancak hepsi Microsoft'un metotlarıydı ve bu makalemizde ise artık kendi metotlarımızı kendimiz yazıp kullanmayı öğreneceğiz :)

Bir nesne yönelimli programlama (object orianted programming - oop) konusu olan metotlar bir programın gerçekleştirdiği işlevlerin her bir parçası diyebiliriz ve programın işleyişini parçalara bölerek daha kolay
geliştirilebilme ve kod tekrarını önleyerek zaman maliyetini oldukça düşürebiliyoruz.

Hemen hemen her programlama dilinde bulunan metotlar ikiye ayrılmaktadır,bunlardan ilki iş yapan (sub) metotlardır ve bu metot türü içeriğine yazılan kodları çalıştırır ancak geriye herhangi bir değer döndürmezler.Diğer bir metot türü ise geriye bir değer döndüren (return) metotlardır.

Bildiğiniz gibi programlama hiyerarşisi en dış kapsamdan en içerdeki kümeye doğru namespace (isim-uzay),class (sınıf) ve metotlardan oluşmaktadır ve en iç kapsamda bulunan metotlar mutlaka sınıf içerisinde yazılmalıdır.
Şimdi kafanızı karıştırmadan konuya sub metotlar ile başlayalım :)

İş yapan sub metotlar C# dilindeki void metotlarla aynıdır diyebiliriz ancak VB.Net'teki yapısı ise:

Sub MetotAdi
        //çalıştırılacak kodlar
End Sub

şeklindedir.
Şimdi Visual Studio'yu açıp Windows Form uygulaması oluşturduktan sonra code-behind yapısına geçelim:

windows-form

Gördüğünüz gibi daha henüz kod yazmadan önce Form1_Load metodu ile karşılaştık ve metotların sınıfların alt kümesi olduğunu bildiğimiz için Form1 sınıfı içerisinde yer alması gayet doğaldır.Dolayısıyla kendi metodumuzu yazmak istediğimizde ya yeni bir sınıf oluşturarak içerisine metodumuzu oluşturacağız ya da şu an ki Form1 sınıfı içerisine yazacağız ve bu makalemizde çok hızlanmadan varolan Form1 sınıfı içerisinde metotlar yazacağız.

Madem metotlar sınıfların alt kümesidir o halde ilk metodumuzu Form1_Load metodunun bittiği yere yazıyoruz:

form-load-metot

Form1_Load metodunun hemen altına "MesajGoster" metodu oluşturduk ve açıklama satırlarında da gösterdiğim
gibi içerisine çalıştırmak istediğimiz kodları yazarız,bu metodumuz ekrana bir mesaj göstersin:

visual-basic-fonksiyon

Metodumuzu yazdık ve programımızı çalıştırıyoruz ancak o da ne! Yazdığımız kod metot çalışmadı ve ekranda 
mesajımız görüntülenmedi.Bunun nedeni yazılan metotlar tek başlarına çalışamazlar mutlaka kendilerini bir şekilde tetikletilmeleri gerekir,bunun için de ya bir event içerisinde (click gibi) ya arkaplan özel metotları içerisinde (timer gibi) ya da Form1_Load eventi içerisinde çağırılarak çalıştırılabilirler ve Visual Basic.Net'te bir metodu çalıştırmak için metodun adını yazmamız (parametreleri yoksayarsak) yeterlidir.
Örneğin: MesajGoster() şeklinde...

Şimdi yazdığımız bu "MesajGoster" metodunu programın çalıştırılma anında tetikletelim:

visual-basic-sub-fonksiyon

Şimdi programımızı çalıştıralım:

vbnet-form

Bir de formumuza buton ekleyelim ve butonumuza çift tıklayarak kod tarafında aynı metodumuzu çağıralım:

button-click

Programı tekrar çalıştırmadan önce programın başlama esnası olan Form1_Load metodu içerisine yazdığımız metot
adını yorum satırı yapalım ki sadece butona tıkladığımızda ekranda mesaj belirsin:

visual-basic-net-fonksiyon

Programı çalıştırıp butona tıklıyoruz:

vbnet-windows-form

Artık metot yazmayı ve nasıl çağıracağımızı öğrendiğimize göre değer döndüren metotları da öğrenme zamanı 
geldi demektir :)
Değer döndüren metotlar, iş yapan sub metotlardan farklı olarak içerisine yazılan kodları çalıştırmanın yanı sıra ister içerisindeki kodları çalıştırarak istersek hiçbir işlem yapmadan doğrudan bir değer döndürürler.Tabi burda değerden kastımız bildiğiniz string,int,boolean ilkel değişken tipleridir.

Yine C# alışkanlığımdan dolayı "metot" sözcüğü yazıyorum ancak Visual Basic'te bunun asıl karşılığı fonksiyon (function) sözcüğüdür,neyse bozmayın beni devam edelim :)
Değer döndüren metotların genel yapısı:

Function MetotAdi( ) as Tip
        return deger
End Function

şeklindedir ve dikkat ederseniz iş yapan sub metotlardan farklı olarak içeriğinde return (geri dönüş) deyimi yer almaktadır.
Tekrar Visual Studio'ya geri dönüyor ve iki sayının 5 katını geri döndüren bir metot yazıyoruz:

visual-basic-int-fonksiyon

Bu yazdığımız metodumuz yani fonksiyonumuz :) sayısal bir değer olan integer tipindeki 100 sayısını geri
döndürmektedir ve dikkat ederseniz herhangi bir hesaplama işlemi yapmadık,formumuzun tasarım kısmına dönüyoruz ve birer tane textbox,buton ve label ekleyip aşağıdaki gibi tasarlıyoruz:

vb-windows-form-design

Yine kod tarafına gidiyor ve bir sayının 5 katını hesaplayan metodumuzu aşağıdaki gibi değiştiriyoruz:

vbnet-int-metot

Artık textboxtan gelen sayıya göre 5 katını hesaplayıp sonucu geri döndüren bir fonksiyon yazdık ve şimdi bu metodumuzu kullanmaya geldi, ama nasıl kullanacağız?

Visual Basic'te değer döndüren bir metodu kullanmak aslında iş yapan sub metotların kullanımından pekte farklı değil ancak değer döndüren fonksiyonun döndüreceği bir değeri bir değişkene atayabiliyoruz,evet yanlış okumuyorsunuz bir metodun döndüreceği değeri aynı tipte bir değişkene atayabiliyor hatta bir sonraki VB makalemizde öğreneceğimiz parametre olarak verebiliyoruz.

Neyse çenem düşmeden az önceki butonumuzun click eventinde sayının 5 katını hesaplayan fonksiyonumuzu
çağıralım ve bir değişkene atayalım:

visual-basic-integer-fonksiyon

ve değerini değer döndüren bir metotdan alan bu değişkenimizi ekrana MessageBox.Show metodu ile
yansıtalım:

vbnet-messagebox-show-function

Neden MessageBox.Show metodu içerisinde "sonuc.ToString()" yazdık diye sormayın kızarım he :)

Şaka tabi, Show metodunun parametrelerinden birisi string tip gerektirdiği için sayısal integer tip olan
"sonuc" değişkenini string ifadeye çevirmek için "ToString" metodunu kullandık.

Gördüğünüz gibi sürekli metotlardan bahsediyoruz yani bu makalemizde öğrendiğimiz konularla zaten hep iç içeydik o yüzden size yabancı gelmeyeceğini umuyorum.

Hani az önce demiştim değer döndüren fonksiyonlar bir değişkene atanabildiği gibi parametre olarak da verilebilir,örneğin Show metodu içerisinde değişken değilde doğrudan metodumuzu çağırabiliriz:

vbnet-messagebox-show-fonksiyon-parametre

Yine neden "ToString" metodunu kullandığımız aklınıza takılmaz umarım :)

Böylece değer döndüren metotları da öğrenmiş olduk ama makaleye son noktayı koymadan önce siz değerli okuyucularım (yalakalık yapmıyorum :)  ) verdiğim örnekleri yetersiz gördüğünüz için bir de string tipinde
değer döndüren VB.Net fonksiyon yazmak istiyorum:

vbnet-string-fonksiyon

Daha fazla örnek istemeyin çünkü makale yazmak çokta kolay bi iş değilmiş,hem ilerleyen makalelerimizde daha profesyonel projeler oluşturacağımız için bu konuları daha detaylı bir biçimde yeniden öğreneceğiz ;)

Makalemiz burada sonra eriyor ve yine klasik cümlem olan "bir sonraki makalemizde görüşmek üzere" diyor,
noktayı koyuyorum :)

Proje Linki: https://www.serkanayyildiz.com/images/uploaded/19-12-2013-20-13-07/vbMetotlar.zip

Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu