Metot: Yaptığımız program içinde çalışan alt program diyebiliriz ya
da belirli bir görevi yapan kod parçası da diyebiliriz. Bunu biraz daha
açıklayacak olursak, kendinizi bir şirketin genel müdürü olarak varsayın,
elinizin altında beş tane görevli mühendisleriniz varsayın. Şimdi bir konu
hakkında araştırma yapacaksınız diyelim. Sizin gidip kurum kurum dolaşıp onca
şeyle uğraşacağınıza istediğiniz bilgiyi bir tane mühendise söylediğinizde,
o gidip gerekli bilgileri toplayıp size sunar. Metotlar da böyle bir şey
arkadaşlar, sizde kendinize ihtiyacınızı karşılayacak bir tane metot oluşturacaksınız ve oluşturduğunuz metot ile birden fazla yerde aynı işlemi her
seferinde aynı kodu yazmadan sadece metodu çağırarak istediğiniz veriye
erişebilirsiniz ve buda size yazılımı yazarken çok büyük bir kolaylık sağlar.
Çünkü aynı işlemi defalarca yazmanız yerine tek bir defa yazmanız yeterli olup
ve metodu çağırmanız işi bitiriyor. Metotlar çağrılmadığı sürece hiçbir iş
yapmazlar. Şimdi metot için kullanılan terimleri inceleyelim.
Metot yapısı:
C# Dilinde Metotlar
[Erişim belirleyici] [Dönen değerin türü] [Metotun adı] ([Metota gönderilen değişkenler ve türleri])
{
Metodun kod bloğu.
}
Erişim Belirteçleri: Metodunuzun ulaşılabilme yetkisini belirliyor.
İnternal : Aynı program içerisinde ki sınıflardan erişilebilir.
Protected : Üyesi olduğu sınıftan ve bu sınıftan türetilmiş
sınıflardan erişilebilir.
Private : Dışarıdan ve Aynı sınıf içinde oluşturulan sınıflardan
dahi erişilemez. Yani özel.
Public : Genel olarak her alana açık hale getiriyor. Yani her
yerden ulaşılabilir hale geliyor.
Dönen değirin türü : Bu alan metodun durumuna göre belirlenir. Yani
eğer metodumuz değer döndüren bir metot ise döndüren değerin tipine göre
belirliyoruz. Eğer değer döndürmeyen bir metot ise bu sefer bu alanı “void” olarak belirtiyoruz.
Metodun adı: Bu kısımda size kalmış, yani metoda istediğiniz ismi
verebilirsiniz. Tabi Türkçe karakter kullanmadan.
Metota gönderilen değişkenler ve türleri : Bu alanda metodun kod bloğunda ki
işlemler için ihtiyaç duyulan değerleri aktarmamız için kullanılır. Yani
diyelim ki metot girilen iki değerin hesaplamasını yapıyor, bizde iki adet
değişken ve türünü belirterek içeri değer aktarırız.
İki çeşit metot vardır: Birincisi
değer döndürmeyen yani “void” olarak belirttiğimiz metot, ikincisi değer
döndüren metotlar.
Geriye
değer döndürmeyen metot :
Oluşturduğumuz metodun kod bloğunda ki işlemlerde geriye değer döndürmezler. Örnek
olarak bir metot için de ekrana mesaj yazan bir örnek yapalım.
private void button1_Click(object sender, EventArgs e)
{
ekranamesajver();// Bu metodu çağırarak mesajı ekrana yazdık.
}
public void ekranamesajver() // Değer
döndürmeyen ve değer almayan metot.
{
MessageBox.Show("işlem Başarılı.");
}
private void button2_Click(object sender, EventArgs e)
{
Toplama(Convert.ToInt32(textBox1.Text),Convert.ToInt32( textBox2.Text)); // Toplama metoduna dışardan girilen iki değeri aktararak çağırdık.
}
public void Toplama(int sayi1, int sayi2) // Değer alan
metod. Girilen iki sayıyı taplama metodu.
{
string sonuc; // Sonuç için bir
adet değişken oluşturalım.
sonuc = (sayi1 + sayi2).ToString(); // iki sayıyı toplayıp sonuc değişkenine atıyalım.
MessageBox.Show(sonuc); // Ve girilen değerlerin toplamını ekrana yazalım.
}
Geriye değer döndüren metot : Geriye hangi türden değer döndürmek
istiyorsanız o türden tanımlamanız lazım. Yazı türünden bir sonucu
döndürecekseniz “string”, sayı türünden bir değer döndürecekseniz “int” olarak
bir metot oluşturmak zorundasınız. Ve nasıl ki geriye değer döndürmeyen metot için “void” tanımlamasını yazmak zorunlu ise geriye değer döndüren metot içinde
“return” kullanmak zorundayız. Örneğimizi inceleyelim şimdi:
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = cikarma_islemi().ToString(); // Textbox1'e dönen değeri aktardık.
}
public int cikarma_islemi() // Dışardan
değer almadan sadece 571 sayısını döndürdük.
{
return 571; // Return ile 571 sayısını
geri döndürelim.
}
private void button4_Click(object sender, EventArgs e)
{
textBox2.Text = hesalama_islemi( Convert.ToInt32( textBox1.Text ), Convert.ToInt32( textBox2.Text )).ToString(); // Dışardan iki değer girerek dönen sonuc textbox2'e aktardık.
}
public int hesalama_islemi(int sayi1,int sayi2) // Değer alarak
geriye değer döndüren bir metot.
{
int sonuc;
sonuc = (sayi1 + sayi2) * 3; // Girilen değerleri işleyip sonuc değişkenine aktardık.
return sonuc; // Geriye sonuc değişkenini
döndürelim.
}