Metot Nedir? C#’ta Metotlar ve Çeşitleri

Prosedürel programlama dillerinde fonksiyon olarak isimlendirilen yapılar, C# gibi nesneye dayalı programlama dillerinde metot olarak isimlendirilmektedir. Rutin halde yapılan işlevler metot haline getirildiğinde kod bakımından daha temiz, kolay okunan ve daha kolay bakım gerçekleştirilebilen programlar ortaya çıkar.

C#’ta kullandığımız metotlar değer döndürme durumu, aldığı parametre türleri, birden fazla görev alabilmesi gibi açılardan bakıldığında çeşitlendirilebilir. Ancak yazılan metotlar, birbirine aykırı olmadığı sürece aşağıdaki çeşitlendirmelerden bir veya birkaçına aynı anda sahip olabilir.

  • Değer döndürme durumuna göre metotlar
    1. Değer döndürmeyen metotlar – void
    2. Değer döndüren metotlar – return
  • Parametre durumuna göre metotlar
    1. Parametre kabul etmeyen metotlar
    2. Parametre kabul eden metotlar
    3. Parametreyi dışarıya verebilen metotlar – ref ve out
    4. Parametre olarak dizi kabul eden metotlar
    5. Virgülle ayrılmış çoklu parametre kabul eden metotlar – params
  • Özyinelemeli metotlar
  • Aşırı Yüklenmiş Metotlar

Değer Döndürmeyen Metotlar

Değer döndürmeyen metotlar tanımlanırken void anahtar kelimesi kullanılır.

Değer Döndüren Metotlar

Değer döndürme işlemi return parametresi ile yapılabilir. return ifadesinden sonra yazılan değişken veya değer, aşağıda gösterilen DegerDondurenToplama() metodunun çağrıldığı yer olan Console.WriteLine() içine değer gönderilmiş olur.

Aslında değer döndürmeyen, yani void ile tanımlı metotlarda da return komutuna rastlanabilir. Ancak bu tür durumlarda return komutu aşağıdaki gibi kullanılır:

Bu kullanımın amacı geriye değer döndürmek değil metottan çıkılmasını sağlamaktır.

Aşırı Yüklenmiş Metotlar (Method Overloading)

Bir metota farklı yollarla birden fazla görev verilebilir. Yukarıdaki örnekte DegerDondurenToplama() metodu 2 parametre kabul ederken aynı isimde bu metodun 3 parametre kabul eden hali de yazılabilir. Bunun yanında int değer döndürme yerine double tipinde değer döndürme gibi farklı bir görev de aynı metodun bir kez daha yazılmasıyla elde edilebilir.

Parametre Olarak Dizi Kabul Eden Metotlar

Aşağıdaki örnekte sayilar adında bir int tipinde parametre kabul eden hali gösterilmiştir.

Virgülle Ayrılmış Çoklu Parametre Kabul Eden Metotlar

Belki de yukarıdakiler içerisinde en farklı kullanım bu şekildedir. Sağladığı kolaylık sayesinde istenildiği kadar sayının esnek bir şekilde toplanması sağlanabilir. Bu işlem ise, oldukça basit bir şekilde, yalnızca dizi tipindeki parametrenin önüne params ifadesinin eklenmesiyle gerçekleştirilir. Dolayısıyla aşağıdaki metodun yukarıdaki metottan tek farkı, dizi parametresinin params ile yeni bir işlev kazandırılmasıdır.

Özyinelemeli Metotlar

Özyinelemeli metotlar da kullanım açısından oldukça farklı yapıdadır. Bu metotlarda temel mantık, metodun kendi kendini çağırması üzerine kuruludur. Özyinelemi metotlarda mutlaka bir son durak tanımlaması yapılmalıdır. Aşağıdaki örnekte, her çarğrıda sayı değeri 1 düşürülmektedir. Ancak ne zaman ki düşürülen sayı değeri en son 1’e ulaşır, o zaman metot kendini bir daha çağırmaz ve geriye yalnızca değer döndürür.

Yukarıda da görüldüğü gibi, if deyiminde else kullanmadan doğrudan bir return komutu göze çarpmaktadır. Değer döndüren metotlarda return ifadesine rastlanıldığı zaman, o satırdan sonrası çalıştırılmaz. Dolayısıyla yukarıdaki kullanım istenirse aşağıdaki gibi de yazılabilir, ikisi arasında herhangi bir fark yoktur.

Kod anlaşılabilirliği açısından alttaki kullanım tercih edilse de ilk kullanıma da oldukça sık rastlanılır.

Parametreyi Dışarıya Verebilen Metotlar

Şu ana kadar yapılan örneklerde, metoda gönderilen parametrelerin değerleri metot içinde değiştirilse bile bu parametrenin gönderildiği yerde herhangi bir etkilenme söz konusu olamaz. Ancak bir metodun birden fazla değer döndürmesini istediğimiz durumlarda ref ve out belirteçleri önem kazanır.

ref Parametresi

Birden fazla parametrenin önüne ref belirteci eklenmesiyle bu değerlerin içeriği metot içinde değiştirilir ve dışarıya da etki eder. ref ile tanımlı tüm parametrelerde ilk değer ataması yapılmalıdır.

Yukarıdaki örnekte iki adet sayının değerleri değiş tokuş yapılmıştır.

out Parametresi

Parametrelerden yalnızca bir tanesi out parametresi olabilir. out parametresine ilk değer ataması yapılmasına gerek yoktur. Ancak bu parametrenin değeri, metot içinde mutlaka değiştirilmelidir.

 

About Hürkal HÜSEM

2010 yılından bu yana Bilişim Teknolojileri Öğretmeni olarak meslek liselerinde görev yapmaktayım.

View all posts by Hürkal HÜSEM →

Bir yanıt yazın

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

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.