Yazılım Mimarileri ve Tasarım Desenleri Üzerine

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 :

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.

Exit mobile version