Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

C# Metodlar(Methods) – 1

Metotlar prosedürel programlamanın temel elemanlarıdır. Metotlar, bir iş yapan program parçacıklarıdırlar. Belirtilen bir işi yerine getirirler, bunun sonucunda bize bir değer gönderir veya göndermezler.
Metotlar aşağıdaki gibi gruplandırılabilirler :

  • Geriye değer göndermeyen, parametre almayan
  • Geriye değer göndermeyen, parametre alan,
  • Geriye değer gönderen, parametre almayan,
  • Geriye değer gönderen, parametre alan

KURAL : Metot içerisine metot YAZILMAZ. Metotlar class scope içinde yazılmalıdırlar.
private keyword ifadesi : Bir yapının başında private ifadesi var ise, o, sadece tanımlandığı class scope içinde kullanılabilir.
public keyword ifadesi : Bir yapının başında public ifadesi var ise, o, tanımlandığı class scope içinde ve diğer class scopeları içinde kullanılabilir.
1. GERİYE DEĞER GÖNDERMEYEN, PARAMETRE ALMAYAN METOT:
void : metodun geriye değer göndermeyeceğini belirtir.


  void MesajVer()//Eğer bişey yazılmazsa private olduğu kabul edilir.
        {
            MessageBox.Show("Test");
        }

  private void Form1_Load(object sender, EventArgs e)
        {
            MesajVer();
        }

Yukarıdaki kodları çalıştırırsanız eğer form yüklenir yüklenmez mesaj kutusu gözükecektir.
Oluşturulan metodu kullanmak için ismini yazmak yeterlidir.
Program metodun ismi ile çağrıldığı yerden, metodun tanımlandığı yere yönlenerek metodu çalıştırır, metodun işi bitince, metodun çağrıldığı yere program akışı geri dönerek oradan çalışmaya devam eder.
2. GERİYE DEĞER GÖNDERMEYEN, PARAMETRE ALAN METOT :


  private void MesajVer(int sayi1,int sayi2)
        {
            MessageBox.Show((sayi1+sayi2).ToString());
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            MesajVer(2,3);
        }

Yukarıda gördüğünüz gibi,MesajVer metodun da parantez içinde iki değişken tanımlanmıştır.Bunlar parametredir.İstediğimiz kadar tanımlayabiliriz.Metodu kullanacağımız yerde ismini yazdığımızda bizden iki parametreyi isteyecektir.Bu kodları çalıştırdığımızda ekrana mesaj kutusunda “5” yazacaktır.
3. GERİYE DEĞER GÖDNEREN, PARAMETRE ALAN METOT :
Eğer bir metod geriye değer göndercekse, void yerine, geriye göndereceği değerin tipi yazılmalıdır.


   int sabit = 1;
        int Faktoriyel(int sayi)
        {
            for (int i = 1; i <= sayi; i++)
            {
                sabit *= i;
            }

            return sabit;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           int fak= Faktoriyel(6);
           MessageBox.Show(fak.ToString());
        }

Geriye değer gönderebilmek için return komutunu kullanmalıyız.Göndereceğimiz değeri “return <>” şeklinde belirtmeliyiz.Yukarıdaki kodlamada da sabit değerini göndermek istiyorum.O yüzden “return sabit” kodunu ekledim.
Burada ki asıl mantığı anlatmak istiyorum.

2. konu başlığında ki “MesajVer” adlı metodu anımsayınız.Ben istediğim yerde bu metodu çağırırken direkt olarak işlevini yerine getirip bana sonucu veriyordu.Yani “MesajVer()” kodunu bir değişkene atamaya gerek duymadık.Çünkü o metod geriye değer göndermediğinden “”MesajVer()”  kodunun bir değeri yoktu.

Geriye değer gönderende ise “Faktoriyel()” kodunu direkt yazdığımızda metod çalışacaktır.Ancak metodun içindeki istediğimiz bir değeri geriye gönderdiğimizde “Faktoriyel()” kodunda onu kullanabileceğiz.Yani gönderdiğimiz o değeri “Faktoriyel()” koduda temsil edecektir.Geriye dönen değerin tipine göre “int a=Faktoriyel()”,”string a=Faktoriyel()” gibisinden değişkenlere atayabiliriz.Bir nevi “return sabit” komutu elde edilen sonucu metodun çağrıldığı yere götür anlamına gelmektedir.

Bunlar da hoşunuza gidebilir...

3 Cevaplar

  1. ahmet dedi ki:

    merhaba hocam ilk önce böyle güzel bilgiler verdiğiniz için teşkekküer ederim.
    3. metotda değeri textboxtan alma istedim ama hata veriyor. kodu aşağıdaki gibi yazdım teşekkürler..

    int b;
    b = Convert.ToInt32(textBox1.ToString());

    int a = fak(b);

    MessageBox.Show(a.ToString());

    • Gencay dedi ki:

      Merhaba Ahmet,
      TextBox dan almak istediğiniz değer, TextBox nesnesinin Text özelliğinde mevcuttur.Siz yanlışlıkla ToString() metodunu kullanmışsınız.Aşağıdaki gibi yazmanız hatayı düzeltecektir.
      int b = Convert.ToInt32(TextBox1.Text);

      Faydalı oluyorsam ne mutlu bana 🙂
      Kolay gelsin..

  2. Yusuf scad dedi ki:

    çok güzel hem notlar hem video bir de burdan çalışmak cidden baya faydalı oluyor

Gencay için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir