C#’da Metotlar


Metot Nedir ?

Daha önce ki bir derste metotlardan biraz bahsetmiştim bunda biraz daha derine inelim.

Herhangi bir uygulama yazarken belirli bir iş yazdığımız kod parçasını birden fazla kullanmamız gerekebilir. Bu yüzden bunu tekrar tekrar yazmak yerine bunu bir metot olarak bir defa yazarız ve o koda ihtiyacımız olduğunda bunu sadece tek bir satır kodla yani metotun ismi ile çağırabiliriz. Visual Studio ile çalışırken de aslında InteliSense özelliğinde bu metotları görebiliriz.



Resimde gördüğünüz gibi pembe kutucukları bulunanlar Visual Studio’nun bize sağlamış olduğu metotlardır yanında da görüldüğü gibi void ile başlayan bir syntax ile yazılır.

Metotların Kullanılması

Bazı metotlar geriye değer döndürür bazıları da döndürmez. Yukarıdaki resimde textbox1.Clear(); methodu gibi. Mesela Random sınıfında ratgele bir sayı oluşturuyoruz fakat bize o sayının ne olduğunu geri bildirmesi gerek işte buna fonksiyon diyoruz.

rnd.Next ile metodumuzu çağırıyoruz ama yanında bu sefer void yerine int yazıyor. Yani int tipinde bir değer döndürdüğünü söylüyor ve parantezin içerisine dikkat ederseniz parametre olarak maxValue için yine int tipinde bir değer aldığını söylüyor. Yandaki parantezi daha sonra değineceğim. Sonuçta biz bu metotu çalıştırmak istersek ancak parametre vererek çalıştırabiliriz ve değer döndüreceği için uygun şekilde kullanmamız gerekir. Doğru şekilde kullanmak istorsak şu şekilde kullanmalıyız :

MetodunDonecegiTip degiskenAdi;

degiskenAdi = metot();

Yani random sayı örneğine dönecek olursak kodlar şu şekilde olacaktır.

Random rnd = new Random();
int sayi;
sayi = rnd.Next(1,100);
label1.Text = sayi.ToString();

1. satırda Random tipinde bir rnd değişkeni yaratıyoruz.
2. satırda sayi adinda int bir değişken yaratıyoruz.
3. satırda sayi değişkenimize 1-100 arası gelen rastgele sayimizi atiyoruz.
4. satırda ise int tipinde olan sayi değişkenimizi string tipine çevirip label da gösteriyoruz.

Ayrıca .Next ile bizden istenilen parametreleri de girmiş bulunuyoruz. Bazı metotlar bu parametleri bekler ve parametresiz çalışmazlar.

Kendi Metodumuzu Yazalım

Kendimiz geriye değer döndürmeyen bir metot yazmak istersek ;

void metotIsmi(varsaDegiskenler)
{
yapılacak işler;
}

çağırmak istediğimizde ise şu şekilde kullanabiliriz ;
metotIsmi(gonderilecekDegisken);
Örnek vermek gerekirse ;
void Temizle()
{
textBox1.Clear();
comboBox1.Items.Clear();
}

başka yerde kullanmak içinse ;
Temizle();
şeklinde basitçe kullanabiliriz.

Değer döndürmek istersek de :
int Topla(int sayi1,int sayi2)
{
int toplam;
toplam = sayi1 + sayi2;
return tolam;
}

Eğer bu şekilde bir fonksiyon oluşturursak return ile dönecek değeri belirtmemiz gereklidir.
Kullanırken;
int sonuc = Topla(124,95);

Metotların içerisinde textbox1, combobox1 gibi belirlediğimiz form elemanlarını kullanmak gereksizdir. Çünkü metotların amacı dışı bir kullanım olur.

Metot Overload

Yukarıda bahsettiğim son parantez olayından bahsedeyim biraz. Tekrar random olayını ele alırsak ;
csharpturkcesi.wordpress.com

1. kısımda Next metodunu parametre almadan kullanabiliriz.

2. kısımda sadece maximum değerini parametre olarak belirtebiliriz

3. kısımda da maximum ve minimum değerleri parametre olarak belirtebiliriz.

Tüm bunlar ışığında overload’u aynı metodu farklı şekillerde kullanabilme durumu diye özetleyebiliriz.

Şimdi de kendimiz bir overload metot oluşturalım :

int YasHesapla(DateTime tarih)
{
int sonuc;
int dogumYili = tarih.Year;
sonuc = DateTime.Now.Year - dogumYili;
return sonuc;
}
int YasHesapla(int yil)
{
int sonuc;
sonuc = DateTime.Now.Year - yil ;
return sonuc;
}

Bu konuyuda böyle noktalayalım daha da derinlere başka konularda ineriz. Kolay gelsin…

Reklamlar

One comment on “C#’da Metotlar

  1. c# da calendar nesnesinin bugun ve bugunden önceki günlerin seçilmesini nasıl engellerim yardımcı olabilirmisiniz ?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s