Yükleniyor...

Metotlar

C# programlama dilinde metotlar, yazılım geliştirmede temel yapı taşlarından biridir ve kodun modüler, okunabilir ve yeniden kullanılabilir olmasını sağlar. Bir metot, belirli bir görevi veya işlemi yerine getiren bağımsız bir kod bloğudur. Metotların kullanımı, kod tekrarını önler, hata yönetimini kolaylaştırır ve yazılımın bakımını ve genişletilmesini basitleştirir.
Metotlar, algoritmaların uygulanması, veri yapılarının işlenmesi ve nesne yönelimli programlama (OOP) prensiplerinin uygulanması için kullanılır. C#’ta metotlar; statik ve örnek metotlar, geri dönüş tipleri, parametreler ve opsiyonel parametreler gibi kavramları içerir. Bu tutorial sayesinde okuyucu, metotların nasıl tanımlandığını, çağrıldığını, parametre ve geri dönüş değerleri ile nasıl çalıştığını ileri düzey örneklerle öğrenecektir.
Bu içerik, metotların yazılım mimarisi içindeki rolünü, performans optimizasyonlarını, bellek yönetimi ve hata kontrolü ile birlikte ele alacaktır. Ayrıca metotların sınıf tasarımındaki önemi, sorumlulukların dağıtılması ve SOLID prensipleriyle uyumlu kullanımı üzerinde durulacaktır. Bu sayede okuyucu, C# projelerinde modüler, güvenli ve sürdürülebilir bir metot kullanımı konusunda ileri düzey bir anlayış kazanacaktır.

Temel Örnek

text
TEXT Code
using System;

class Hesaplayici
{
// Statik metot ile iki sayının toplamını hesaplama
public static int Topla(int a, int b)
{
return a + b;
}

// Örnek metot ile bir sayının karesini hesaplama
public int Kare(int sayi)
{
return sayi * sayi;
}

static void Main()
{
// Statik metot çağrısı
int toplamSonuc = Topla(7, 15);
Console.WriteLine($"Toplam sonucu: {toplamSonuc}");

// Örnek metot kullanımı
Hesaplayici hesap = new Hesaplayici();
int kareSonuc = hesap.Kare(8);
Console.WriteLine($"Karesi: {kareSonuc}");
}

}

Bu temel örnekte iki farklı metot türü gösterilmektedir: statik (Topla) ve örnek metot (Kare). Statik metot, sınıfa ait olduğundan nesne oluşturmadan çağrılabilir ve genellikle genel işlemler için kullanılır. Örnek metot ise nesne üzerinden çağrılır ve nesnenin durumuna bağlı çalışabilir.
Main metodu, programın giriş noktası olarak her iki metodu da çağırmakta ve Console.WriteLine ile sonuçları ekrana yazdırmaktadır. Bu örnek, metodların nasıl tanımlandığını, çağrıldığını ve C#’ta kullanılan isimlendirme ve erişim belirleyicileri gibi en iyi uygulamaları göstermektedir. Gerçek projelerde bu yapı, daha karmaşık algoritmaların uygulanması, veri koleksiyonlarının işlenmesi ve nesneye özel işlemlerin yönetilmesi için temel oluşturur.

Pratik Örnek

text
TEXT Code
using System;
using System.Collections.Generic;

class SiparisYoneticisi
{
private List<string> siparisler = new List<string>();

// Sipariş ekleyen metot
public void SiparisEkle(string siparis)
{
if (string.IsNullOrWhiteSpace(siparis))
throw new ArgumentException("Sipariş boş olamaz.");

siparisler.Add(siparis);
}

// Siparişleri listeleyen metot
public void SiparisleriListele()
{
if (siparisler.Count == 0)
{
Console.WriteLine("Kayıtlı sipariş yok.");
return;
}

Console.WriteLine("Sipariş Listesi:");
foreach (var s in siparisler)
{
Console.WriteLine($"- {s}");
}
}

// Statik metot ile sipariş doğrulama
public static bool SiparisDogruMu(string siparis)
{
return !string.IsNullOrWhiteSpace(siparis) && siparis.Length >= 3;
}

static void Main()
{
SiparisYoneticisi yonetici = new SiparisYoneticisi();

string siparis1 = "Laptop";
if (SiparisDogruMu(siparis1))
yonetici.SiparisEkle(siparis1);

yonetici.SiparisEkle("Telefon");
yonetici.SiparisleriListele();
}

}

Metotları C#’ta etkili kullanmanın en iyi yolu, okunabilir ve bakım yapılabilir bir yapı kurmaktır. Metot isimleri PascalCase kullanılarak anlamlı seçilmeli, her metodun tek bir sorumluluğu olmalıdır (Single Responsibility Principle). Statik metotlar, nesneye bağımlı olmayan genel işlemler için tercih edilmelidir.
Hata yönetimi için try-catch blokları kullanılmalı ve giriş parametreleri validate edilmelidir. Özellikle büyük veri kümelerinde algoritmaların verimli seçilmesi performans açısından kritik öneme sahiptir. Bellek yönetimi açısından IDisposable implementasyonu gerekebilir. Recursion kullanılırken, çıkış koşullarının doğru tanımlanması, stack overflow hatalarını önler. Güvenlik açısından ise metotlar, dış kaynaklardan gelen verileri doğrulamalıdır.

📊 Referans Tablosu

C# Element/Concept Description Usage Example
Statik Metot Sınıfa ait, nesne gerekmez Hesaplayici.Topla(7,15)
Örnek Metot Nesne üzerinden çağrılır hesap.Kare(8)
Metot Aşırı Yükleme Farklı parametrelerle aynı isimli metot public int Hesapla(int a), public int Hesapla(int a,int b)
Opsiyonel Parametre Varsayılan değeri olan parametre public void Yazdir(string msg="Merhaba")
Rekursif Metot Kendini çağıran metot Faktoriyel(n) => n * Faktoriyel(n-1)

Metotları öğrenmek, C#’ta modüler ve sürdürülebilir yazılım geliştirme için temel bir adımdır. Statik ve örnek metotların farkları, metot aşırı yükleme, parametre kullanımı ve hata yönetimi konuları kritik bilgi alanlarıdır. Bu bilgiler, metodların işlevselliğini ve yazılım mimarisine entegrasyonunu güçlendirir.
Metot bilgisi, delegeler, lambda ifadeleri ve async/await yapıları gibi ileri düzey C# konularıyla doğrudan ilişkilidir. Sonraki adım olarak kalıtım, polimorfizm ve tasarım desenleri gibi konular üzerinde çalışmak, metotların kullanımını daha verimli hale getirir. Mevcut projelerde metotları doğru uygulamak, kod tekrarını azaltır, bakım maliyetini düşürür ve yazılım kalitesini artırır.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu konudaki anlayışınızı pratik sorularla test edin.

4
Sorular
🎯
70%
Geçmek İçin
♾️
Süre
🔄
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek