C# Fonksiyonlar (Metotlar)

C# fonksiyonları (metotlar), belirli bir işlemi gerçekleştirmek için kullanılan kod bloklarıdır. Kodun yeniden kullanılabilirliğini sağlar, okunabilirliği artırır ve karmaşıklığı azaltır. Bu yazıda C# fonksiyonlarının temelleri, nasıl tanımlandığı ve kullanıldığı detaylı bir şekilde anlatılacaktır.


1. C# Fonksiyonlarının Özellikleri

  • Modüler Yapı: Kodunuzu farklı işlevlere bölebilirsiniz.
  • Tekrarlanabilirlik: Aynı kodu tekrar yazmak yerine bir kez tanımlayıp birçok yerde kullanabilirsiniz.
  • Parametreler: Fonksiyonlara dışarıdan veri gönderebilirsiniz.
  • Geri Dönüş Değeri: Fonksiyonlar bir işlem sonucunu geri döndürebilir.

2. Fonksiyon Tanımı ve Kullanımı

C#’ta bir fonksiyon, returnType (geri dönüş tipi), methodName (metot adı), ve isteğe bağlı olarak parametrelerden oluşur.

Genel Söz Dizimi

geriDönüşTipi FonksiyonAdı(parametreler)
{
    // İşlem bloğu
    return değer; // Geri dönüş değeri
}

Temel Bir Örnek

int Topla(int a, int b)
{
    return a + b;
}

Console.WriteLine(Topla(5, 10)); // Çıktı: 15


3. Fonksiyon Çeşitleri

a. Parametresiz ve Geri Dönüşsüz Fonksiyonlar

Bu tür fonksiyonlar ne parametre alır ne de bir değer döner.

void MesajYaz()
{
    Console.WriteLine("Merhaba, C#!");
}

MesajYaz(); // Çıktı: Merhaba, C#!

b. Parametre Alan Fonksiyonlar

Parametre alarak gelen veriyi kullanır.

void Selamla(string isim)
{
    Console.WriteLine($"Merhaba, {isim}!");
}

Selamla("Ali"); // Çıktı: Merhaba, Ali!

c. Geri Dönüş Değeri Olan Fonksiyonlar

İşlem sonucunu çağrıldığı yere döndürür.

double KareAl(double sayi)
{
    return sayi * sayi;
}

Console.WriteLine(KareAl(4)); // Çıktı: 16

d. Parametreli ve Geri Dönüşlü Fonksiyonlar

Hem veri alır hem de bir sonuç döndürür.

int Faktoriyel(int n)
{
    int sonuc = 1;
    for (int i = 1; i <= n; i++)
    {
        sonuc *= i;
    }
    return sonuc;
}

Console.WriteLine(Faktoriyel(5)); // Çıktı: 120


4. Geri Dönüş Tipleri

C# fonksiyonlarında aşağıdaki gibi farklı geri dönüş tipleri kullanabilirsiniz:

  • int: Tamsayı döndürür.
  • double: Ondalıklı sayı döndürür.
  • string: Metin döndürür.
  • void: Geri dönüş değeri döndürmez.
  • bool: Doğru (true) veya yanlış (false) döndürür.
bool CiftMi(int sayi)
{
    return sayi % 2 == 0;
}

Console.WriteLine(CiftMi(10)); // Çıktı: True


5. Fonksiyon Aşırı Yükleme (Method Overloading)

C#’ta birden fazla fonksiyon aynı isme sahip olabilir, ancak farklı parametre türlerine veya sayısına sahip olmalıdır.

void Yazdir(string mesaj)
{
    Console.WriteLine(mesaj);
}

void Yazdir(string mesaj, int tekrar)
{
    for (int i = 0; i < tekrar; i++)
    {
        Console.WriteLine(mesaj);
    }
}

Yazdir("Merhaba");        // Çıktı: Merhaba
Yazdir("Selam", 3);       // Çıktı: Selam (3 kez)


6. Rekürsif Fonksiyonlar

Bir fonksiyonun kendisini çağırdığı durumlara rekürsiyon denir.

int Faktoriyel(int n)
{
    if (n <= 1)
        return 1;
    return n * Faktoriyel(n - 1);
}

Console.WriteLine(Faktoriyel(5)); // Çıktı: 120


7. Değer ve Referans Tipinde Parametreler

a. Değer Tipinde Parametre

Fonksiyona gönderilen parametrenin bir kopyası üzerinde işlem yapılır.

void Degistir(int x)
{
    x = 20;
}

int sayi = 10;
Degistir(sayi);
Console.WriteLine(sayi); // Çıktı: 10

b. Referans Tipinde Parametre

ref veya out anahtar sözcükleri ile gönderilen verinin kendisi üzerinde işlem yapılır.

void Degistir(ref int x)
{
    x = 20;
}

int sayi = 10;
Degistir(ref sayi);
Console.WriteLine(sayi); // Çıktı: 20


8. Yerel ve Statik Fonksiyonlar

a. Yerel Fonksiyonlar

Bir metot içinde tanımlanan fonksiyonlardır.

void Islem()
{
    int Topla(int a, int b)
    {
        return a + b;
    }

    Console.WriteLine(Topla(3, 4)); // Çıktı: 7
}
Islem();

b. Statik Fonksiyonlar

Statik sınıflar veya nesne oluşturmadan çağrılabilir fonksiyonlardır.

class Program
{
    static void Selamla()
    {
        Console.WriteLine("Merhaba, Dünya!");
    }
}

Program.Selamla(); // Çıktı: Merhaba, Dünya!

Leave a Reply

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