

8. Metotlar (Fonksiyonlar) ve Parametreler
C# programlama dilinde, metotlar (veya fonksiyonlar), belirli bir görevi yerine getiren kod bloklarıdır. Programlarımızın modüler, tekrar kullanılabilir ve okunabilir olmasını sağlarlar. Bu makalede, C# dilinde metotların nasıl tanımlandığını, kullanıldığını ve parametrelerin nasıl işlendiğini ayrıntılı olarak inceleyeceğiz.
Metot Tanımlama
Bir metot, genel olarak aşağıdaki yapıya sahiptir:
döndürülecek_tip metot_adı(parametre_listesi)
{
// Metot gövdesi - yapılacak işlemler
return döndürülecek_değer; // Eğer döndürülecek_tip void değilse
}
- döndürülecek_tip: Metodun geriye döndüreceği veri tipini belirtir. Eğer metot herhangi bir değer döndürmüyorsa,
void
olarak tanımlanır. - metot_adı: Metoda verdiğimiz isimdir. Anlamlı ve açıklayıcı bir isim seçmek, kodun okunabilirliğini artırır.
- parametre_listesi: Metoda gönderilecek olan parametrelerin listesidir. Parametreler, metodun çalışması için gerekli olan girdileri sağlar. Parametreler veri tipi ve isimleriyle birlikte tanımlanır. Eğer metot parametre almıyorsa, parantezler boş bırakılır.
- Metot gövdesi: Metodun içindeki kod bloğudur. Burada, metodun gerçekleştireceği işlemler yer alır.
- return: Metodun geriye bir değer döndürmesini sağlar. Eğer metodun döndürülecek tipi
void
değilse,return
ifadesi ile uygun tipte bir değer döndürülmelidir.
Örnek Metot Tanımları
İşte birkaç örnek metot tanımı:
// İki sayıyı toplayıp sonucu döndüren metot
int Topla(int sayi1, int sayi2)
{
int toplam = sayi1 + sayi2;
return toplam;
}
// Ekrana bir mesaj yazdıran metot (geriye değer döndürmüyor)
void MesajYaz(string mesaj)
{
Console.WriteLine(mesaj);
}
// Parametre almayan ve geriye sabit bir değer döndüren metot
int SabitDegerDondur()
{
return 42;
}
Metot Çağırma (Kullanma)
Bir metodu kullanmak için, metodun adını ve gerekli parametreleri (varsa) belirtmeniz gerekir. Metot çağrıldığında, metot içindeki kod bloğu çalıştırılır ve (eğer varsa) geriye bir değer döndürülür.
int sonuc = Topla(5, 3); // Topla metodunu çağır ve sonucu 'sonuc' değişkenine ata
MesajYaz("Merhaba Dünya!"); // MesajYaz metodunu çağır ve ekrana mesaj yazdır
int sabit = SabitDegerDondur(); // SabitDegerDondur metodunu çağır ve sabit değeri 'sabit' değişkenine ata
Parametreler
Metotlar, dışarıdan bilgi almak için parametreler kullanır. Parametreler, metodun daha esnek ve tekrar kullanılabilir olmasını sağlar. C# dilinde farklı parametre türleri bulunmaktadır.
Değer Parametreler (Value Parameters)
Değer parametreler, metodun çağrıldığı yerden metoda bir değerin kopyasını gönderir. Metot içinde yapılan değişiklikler, çağıran yerdeki değişkeni etkilemez.
void DegerParametre(int sayi)
{
sayi = sayi * 2;
Console.WriteLine("Metot içinde sayi: " + sayi); // Metot içinde sayi: 20
}
int anaSayi = 10;
DegerParametre(anaSayi);
Console.WriteLine("Ana metot içinde anaSayi: " + anaSayi); // Ana metot içinde anaSayi: 10
Referans Parametreler (Reference Parameters)
Referans parametreler, metoda bir değişkenin bellekteki adresini (referansını) gönderir. Metot içinde yapılan değişiklikler, çağıran yerdeki değişkeni doğrudan etkiler. Referans parametreler ref
anahtar kelimesi ile belirtilir.
void ReferansParametre(ref int sayi)
{
sayi = sayi * 2;
Console.WriteLine("Metot içinde sayi: " + sayi); // Metot içinde sayi: 20
}
int anaSayi = 10;
ReferansParametre(ref anaSayi);
Console.WriteLine("Ana metot içinde anaSayi: " + anaSayi); // Ana metot içinde anaSayi: 20
Çıkış Parametreleri (Output Parameters)
Çıkış parametreleri, metottan birden fazla değer döndürmek için kullanılır. Çıkış parametreleri de referans gibi çalışır, ancak metoda gönderilmeden önce değer atanması zorunlu değildir. Çıkış parametreler out
anahtar kelimesi ile belirtilir.
void CikisParametre(int sayi, out int kare, out int kup)
{
kare = sayi * sayi;
kup = sayi * sayi * sayi;
}
int anaSayi = 5;
int kareSonucu, kupSonucu;
CikisParametre(anaSayi, out kareSonucu, out kupSonucu);
Console.WriteLine("Karesi: " + kareSonucu + ", Küpü: " + kupSonucu); // Karesi: 25, Küpü: 125
Parametre Dizileri (Parameter Arrays)
Parametre dizileri, bir metoda değişken sayıda aynı tipte parametre göndermek için kullanılır. Parametre dizileri params
anahtar kelimesi ile belirtilir ve metodun parametre listesinde son parametre olmalıdır.
int ToplaParams(params int[] sayilar)
{
int toplam = 0;
foreach (int sayi in sayilar)
{
toplam += sayi;
}
return toplam;
}
int toplam1 = ToplaParams(1, 2, 3); // toplam1 = 6
int toplam2 = ToplaParams(1, 2, 3, 4, 5); // toplam2 = 15
Console.WriteLine("Toplam 1: " + toplam1 + ", Toplam 2: " + toplam2);
Metot Aşırı Yüklemesi (Method Overloading)
C# dilinde, aynı isimde birden fazla metot tanımlanabilir. Bu duruma metot aşırı yüklemesi denir. Metotların aynı isme sahip olabilmesi için, parametre listelerinin farklı olması gerekir (parametre sayısı, veri tipi veya sırası farklı olabilir).
int Topla(int sayi1, int sayi2)
{
return sayi1 + sayi2;
}
double Topla(double sayi1, double sayi2)
{
return sayi1 + sayi2;
}
int toplamInt = Topla(5, 3); // int Topla metodu çağrılır
double toplamDouble = Topla(5.5, 3.2); // double Topla metodu çağrılır
Console.WriteLine("Integer Toplam: " + toplamInt + ", Double Toplam: " + toplamDouble);
Sonuç
Metotlar, C# programlama dilinde kodun modülerliğini, tekrar kullanılabilirliğini ve okunabilirliğini artıran temel yapı taşlarıdır. Farklı parametre türleri ve metot aşırı yüklemesi gibi özellikler, metotların esnekliğini ve gücünü artırır. Bu makalede öğrendiğiniz bilgilerle, C# projelerinizde daha etkili ve düzenli metotlar oluşturabilirsiniz.
Bir yanıt bırakın