Metotlar

C# programlarimiz icerisindeki is parcalaridir. Metotlar ın temel gorevi kod tekrarini engellemektir. Ayrica metotlar tek bir kaynaktan yonetim yapmayi saglayarak yonetilebilirligi kolaylastirir.

Metotlarda kod kullanimi performansi olumlu ya da olumsuz etkilemez.

Metotlar temel bazda ikiye ayrilir;

  • Geriye deger donduren metotlar
  • Geriye değer dondurmeyen metotlar

 

Geriye deger dondurmeyen metotlar,

Void anahtar kelimesi geriye bir deger dondurmeyecegini belirler.

Geriye Deger donduren metotlar ise cagrildigi yere bir sonuc dondurmektedir.

 

Bir metot parametre almasi halinde tanimladigimiz parametre tipi ve ismini metot icerisinde yapacagimiz islemlerde kullaniriz.

Onemli olan nokta su ki parametreleri neye gore sectiysem metot icerisindeki algoritmayi ona gore yapmayalim. Ayni zamanda metotu cagirirken metot benden vermis olustugumuz parametre tipinde bir deger ister.

Geriye deger dondurmeyen metotlar

Sytanx yapisi su sekildedir,

 void <Metot adi>()

{

Tekrarlanan is parcaciklari

}

 

Ornek 1,

form-metodlar

Form uzerinde bulunan 3 buttona da tikladigimzda textbox icerisine yazilan degeri listboxda gosterelim.

private void button1_Click(object sender, EventArgs e)

        {

string yeniDeger = txtGelenDeger.Text;

lstGelenDegerler.Items.Add(yeniDeger);

}

 

private void button2_Click(object sender, EventArgs e)

{

string yeniDeger = txtGelenDeger.Text;

lstGelenDegerler.Items.Add(yeniDeger);

}

 

private void button3_Click(object sender, EventArgs e)

{

string yeniDeger = txtGelenDeger.Text;

lstGelenDegerler.Items.Add(yeniDeger);

}

 

3 button da farkli eventler olusturdugumuz icin atama islemini 3 event icinde yazdik. Fakat yaptigimiz islem 3 button icinde ayni oldugundan islemleri bir metot olusturarak yapalim.

private void button1_Click(object sender, EventArgs e)

{

Yaz();

}

 

private void button2_Click(object sender, EventArgs e)

{

Yaz();

}

 

private void button3_Click(object sender, EventArgs e)

{

Yaz();

}

void Yaz()

{

string yeniDeger = txtGelenDeger.Text;

lstGelenDegerler.Items.Add(yeniDeger);

}

Gordugumuz gibi atama islemini sadece bir kere yazdim ve event uzerinden sadece metotu cagirarak istedigim islemi yapmis oldum.

 

Ornek 2,

form-metodlar-2

Girilen iki sayinin buttona tikladigimizda sonucu gosterelim.

Bu yapida kodlarin tekrarlanma gibi bir durumu soz konusu degildir. Fakat geriye deger dondurmeyen ama parametre alan metotlar icin bir orneklemedir. Amac calisma mantigini kavramaya calismamiz.

private void btnTopla_Click(object sender, EventArgs e)

{

Topla(txtSayi1.Text, txtSayi2.Text);

}

void Topla(string girilenSayi1, string girilenSayi2)

{

int sayi1 = Convert.ToInt32(girilenSayi1);

int sayi2 = Convert.ToInt32(girilenSayi2);

int sonuc = sayi1 + sayi2;

lblSonuc.Text = sonuc.ToString();

 

}

Buttona tikladigimizda click eventine girer ve topla metotu uzerindeki textbox degerlerini alir. Topla metotuna bakar.

Textbox uzerinden girilen degerleri metot icerisinde sayi1 ve sayi2 ye aktarir. + operatoruyle sonuc degiskenine atama islemi yapilir.

**Topla metotunu olusturuken degerleri textbox uzerinden cekecegimiz icin parametreleri string deger olarak verdik**

Yani sunu diyebiliriz ki,

parametrelerin gorevi metot dısındaki nesnelerin degerlerini metot icine aktarır.

Bir cevap yazın

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