Anasayfa / Yazılım / ASP.NET / Geriye Değer Döndüren ve Geriye Değer Döndürmeyen Metotlar

Geriye Değer Döndüren ve Geriye Değer Döndürmeyen Metotlar

Bu yazımda ASP.NET ortamında geriye değer döndüren metotları, metotları kullanarak 4 işlem yaptıracağım. Bir WEB projesi açalım ve bir adet boş WEB form ekleyelim. Öncelikle tasarımımı yapıyorum. Tasarımım aşağıdaki gibi olacak, burda iki adet TextBox kontrolü, 4 adet buton bir adet label kullandım. Bunlara isimleri verdim. Siz aşağıdaki kodu (design kodunu alıp uygulamanızda design alanına yapıştırarak aynısını elde edebilirsiniz, ya da farklı tasarım yapabilirsiniz, sorun değil, isimler mühim o kadar.)

Aşağıda bu tasarımın kodlarını görebilirsiniz.

Default4.aspx sayfamın kodları :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>





    


    
Birinci Sayı :
İkinci Sayı :
         
Sonuç :

Metotlar asla birbirinin içinde oluşturulamazlar. Bunun dışında istediğimiz kısımda tanımlayabiliriz. Geriye değer döndürmeyen metotları tanımlarken void deyimini kullanırız. Daha sonra metotumuza isim verir ve parantez aç, kapa kullanılır. Örnek :

void metodumuz()
{

//yaptırmak istediğimiz işlemler..

}

Dışarıdan değer alan, geriye değer döndürmeyen metot ise aşağıdaki gibi tanımlanır :

void metodumuz(int sayi1, int sayi2)
{

//yaptırmak istediğimiz işlemler..
}

Görüldüğü gibi void deyiminin ardından metodumuza bir isim verdik parantez açtık bu sefer parametre kullandık. Bu parametrelerin tipini de belirttik. Buradaki parametre sayısı ikiden fazlada olabilir, tekde olabilir, bu sorun değil. Ben iki tane ekledim, yine burdaki parametrelerin tipi int, string, byte, char, boolean, double, decimal vs olabilir.

Şimdi uygulamamıza dönelim, uygulamamda bazı kısımları parametreli bazı kısımları parametresiz olarak gerçekleştireceğim. Yani dışardan değer alan ve değer almayan olmak üzere iki tipte bu işlemlerimi yapacağım. Tüm işlemlerimi ben ayrı ayrı metotlarda yapmak istiyorum, gereksiz uzatıyorum aslında burda işlemimi ama bizim amacımız metotların kullanımını öğrenmek.

Şimdi örneğin her butona basıldıktan sonra textboxların temizlenmesini istiyorum, bunun için geriye değer döndürmeyen ve herhangi bir parametre almayan metot oluşturuyorum

 void TemizlikYap()
    {
        //Textboxları temizliyorum, her iki yöntemde aynı işi yapar. İkisini de göstermek istedim.
        txtBirinciSayi.Text = "";
        txtIkinciSayi.Text = string.Empty; 
    }

Daha sonra Toplama işlemi yapacağım, + butonuna basıldığında toplama işlemini gerçekleştirmek istiyorum. Ancak şöyle olsun, tek parametre alan geriye değer döndürmeyen bir metot olsun istiyorum.

 //Toplama fonksiyonum, burada geriye değer döndürmeyen tek parametreli bir metot oluşturdum
    void Toplama(int sayi1)  
    {
        int sayi2 = Convert.ToInt32(txtIkinciSayi.Text);  //ikinci sayıyı okuyorum ve convert işlemimi yapıyorum.
        int toplam = sayi1 + sayi2; // iki sayıyı topluyoryum.
        Label1.Text = toplam.ToString(); //Sonucu labela yazıdırıyorum.

    }
    protected void btnToplam_Click(object sender, EventArgs e)
    {
        Toplama(Convert.ToInt32(txtBirinciSayi.Text));  //metodumu kullanıyorum ancak metodum benden bir parametre istiyor, 
        //buna göre ilk sayıyı textbox1 den okuyorum ve convert işlemi yapıp metoduma yolluyorum
        TemizlikYap(); //Textboxları temizliyorum.

    }

Şimdi çıkarma işlemi için metot oluşturalım. Bunda da yine farklı bir şekilde bu sefer iki parametreli geriye değer döndürmeyen metot kullanalım.

   //iki parametreli geriye değer döndürmeyen metot oluşturdum. 
    void Cikarma(int sayi1, int sayi2)
    {
        int cikarma = sayi1 - sayi2; // iki sayıyı çıkarıyorum
        Label1.Text = cikarma.ToString(); //Sonucu labela yazıdırıyorum.
    }

    protected void btnCikarma_Click(object sender, EventArgs e)
    {
        Cikarma(Convert.ToInt32(txtBirinciSayi.Text), Convert.ToInt32(txtIkinciSayi.Text)); //iki sayıyı textboxdan okuyorum
        //tip dönüşümünü yapıyorum ve metodumu kullanıyorum
        TemizlikYap(); //Textboxları temizliyorum.
    }

Bölme işlemi içinde tek parametre alan geriye değer döndürmeyen bir metot kullanalım, ama bu sefer işgüzarlık yapıp veri tipini string diyorum.

//Bölme işlemi için metodum, geriye değer döndürmeyen tek tip parametre alan metot. Bu sefer string tipinde parametre
    void bolme(string sayi1)
    {
        //Her iki sayı içinde çevrim işlemi yapıyorum, çünkü string tipinde geliyorlar, sonra bölme işlemimi yapıyorum
        int bolme = Convert.ToInt32(sayi1) / Convert.ToInt32(txtIkinciSayi.Text);
        Label1.Text = bolme.ToString(); // Sonucu labela yazdırıyorum
    }

    protected void btnBolme_Click(object sender, EventArgs e)
    {
        bolme(txtBirinciSayi.Text); // ilk sayıyı okuyorum, çevirme yapmıyorum, çünkü metodum benden zaten string tipinde bekliyor
        TemizlikYap(); //TextBoxları temizliyorum
    }

Çarpma işlemi içinde her ikisi de string tipinde olan çift parametreli geriye değer döndürmeyen bir metot kullanalım.

void carpma(string sayi1, string sayi2)
    {
        //iki string değeri int tpine çevirip birbiri ile çarpıyorum..
        int carpma = Convert.ToInt32(sayi1) * Convert.ToInt32(sayi2);
        Label1.Text = carpma.ToString();  // Sonucu label kontrolüme yazdırıyorum
    }
    protected void btnCarpma_Click(object sender, EventArgs e)
    {
        carpma(txtBirinciSayi.Text, txtIkinciSayi.Text); //Her iki sayıyı textboxlardan okuyorum, bir çevirme yapmıyorum, çünkü metodum benden string istiyor
        TemizlikYap(); //labelları temizliyorum
    }

Görüldüğü üzere geriye değer döndürmeyen metotların kullanımı bu kadar kolay. Genel olarak bu tip metotlar dışarıdan değer almamamız gereken durumlarda kullanılırlar.

Şimdi Code Behind tarafındaki kodlarımızın tam halini paylaşayım, ayrıca uygulamayı da aşağıdaki linkten indirebilirsiniz.

Default.aspx.cs Dosyası Kodlar :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Default4 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    //Geriye değer döndürmeyen ve değer almayan bir metot tanımlıyorum, bu metotum temizlik işlemi yapacak
    //Butona tıklandıktan sonra textboxların içeriği temizlenecek
    void TemizlikYap()
    {
        //Textboxları temizliyorum, her iki yöntemde aynı işi yapar. İkisini de göstermek istedim.
        txtBirinciSayi.Text = "";
        txtIkinciSayi.Text = string.Empty; 
    }

    //Toplama fonksiyonum, burada geriye değer döndürmeyen tek parametreli bir metot oluşturdum
    void Toplama(int sayi1)  
    {
        int sayi2 = Convert.ToInt32(txtIkinciSayi.Text);  //ikinci sayıyı okuyorum ve convert işlemimi yapıyorum.
        int toplam = sayi1 + sayi2; // iki sayıyı topluyoryum.
        Label1.Text = toplam.ToString(); //Sonucu labela yazıdırıyorum.

    }
    protected void btnToplam_Click(object sender, EventArgs e)
    {
        Toplama(Convert.ToInt32(txtBirinciSayi.Text));  //metodumu kullanıyorum ancak metodum benden bir parametre istiyor, 
        //buna göre ilk sayıyı textbox1 den okuyorum ve convert işlemi yapıp metoduma yolluyorum
        TemizlikYap(); //Textboxları temizliyorum.

    }
    //iki parametreli geriye değer döndürmeyen metot oluşturdum. 
    void Cikarma(int sayi1, int sayi2)
    {
        int cikarma = sayi1 - sayi2; // iki sayıyı çıkarıyorum
        Label1.Text = cikarma.ToString(); //Sonucu labela yazıdırıyorum.
    }

    protected void btnCikarma_Click(object sender, EventArgs e)
    {
        Cikarma(Convert.ToInt32(txtBirinciSayi.Text), Convert.ToInt32(txtIkinciSayi.Text)); //iki sayıyı textboxdan okuyorum
        //tip dönüşümünü yapıyorum ve metodumu kullanıyorum
        TemizlikYap(); //Textboxları temizliyorum.
    }
    //Bölme işlemi için metodum, geriye değer döndürmeyen tek tip parametre alan metot. Bu sefer string tipinde parametre
    void bolme(string sayi1)
    {
        //Her iki sayı içinde çevrim işlemi yapıyorum, çünkü string tipinde geliyorlar, sonra bölme işlemimi yapıyorum
        int bolme = Convert.ToInt32(sayi1) / Convert.ToInt32(txtIkinciSayi.Text);
        Label1.Text = bolme.ToString(); // Sonucu labela yazdırıyorum
    }

    protected void btnBolme_Click(object sender, EventArgs e)
    {
        bolme(txtBirinciSayi.Text); // ilk sayıyı okuyorum, çevirme yapmıyorum, çünkü metodum benden zaten string tipinde bekliyor
        TemizlikYap(); //TextBoxları temizliyorum
    }
    //iki parametreli geriye değer döndürmeyen string tiplerde parametrelere sahip carpma metodum
    void carpma(string sayi1, string sayi2)
    {
        //iki string değeri int tpine çevirip birbiri ile çarpıyorum..
        int carpma = Convert.ToInt32(sayi1) * Convert.ToInt32(sayi2);
        Label1.Text = carpma.ToString();  // Sonucu label kontrolüme yazdırıyorum
    }
    protected void btnCarpma_Click(object sender, EventArgs e)
    {
        carpma(txtBirinciSayi.Text, txtIkinciSayi.Text); //Her iki sayıyı textboxlardan okuyorum, bir çevirme yapmıyorum, çünkü metodum benden string istiyor
        TemizlikYap(); //labelları temizliyorum
    }
}

Burada hata yakalama işlemi yapmadık, konumuz bu değil, textboxlara uygun bir veri tipi girilmediğinde dolayısı ile hata verecektir. Bunu göz ardı ediniz. Belirttiğim gibi konumuz bu değildi.

Aşağıdaki linkten uygulamayı indirebilirsiniz.

Bir cevap yazın

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