C# Metotlar

Programlamada önemli unsurlardan biri olan metotlarla devam edelim. Metotlar belli işlemleri yerine getiren kod bloklarıdır. Metot kullanılmak istendiğinde, metoda verilen isimle metot çağrılır ve içerisine yazılmış olan kod parçacıkları çalışır.

Metot tanımlanırken erişim tipi (public, private..) yazmak ile işe başlanır. Eğer erişim tipi yazılmazsa da bu hata sayılmaz. Program bunu private olarak kabul eder.

Daha sonra geri dönüş tipi yazılır. Burada void kavramıyla da tanışmış olacağız. Eğer geriye bir şey döndürmeyecekse bu metodun geri dönüş tipine void diyebiliriz. Eğer değer döndürüyorsa dönecek değerin türü yazılır. Örneğin integer bir değer dönecekse metodun dönüş tipini int veririz, string ise string veririz. “Değer dönmek” yani return anahtar kelimesi de yine metotlarda tanışacağımız bir diğer kavram olacak. İlerledikçe ve örneklerle daha net anlaşılacağı için şimdilik metotların genel yazımına odaklanmamız yeterli.

İlk erişim tipi, ikinci geri dönüş tipi yazılacak demiştik. Üçüncü olarak metoda bir isim veririz ki yukarıda da dediğim gibi metodu kullanacağımız zaman ismi ile çağırırız.

Bir sonraki aşamada parametre kavramı ortaya çıkıyor. . Parametre ne demek? Parametreler çağırıldıklarında metoda geçirilen değerleri kabul eden değişkenlerdir. Metot içerisinde var olurlar ve metottan çıktıklarında yok olurlar. Metotlar parametreli de olabilir, parametresiz de olabilir. Gelin bu yazdıklarımızı bir toparlayalım, formülize edelim.

Erişim_Bicimi Geri_Dönüş_Tipi İsmi(Parametre) //Parametresiz de olabilir
{
    //Kodlar
}
public void IsimYazdir()
{
    Console.WriteLine("gokyuzuavcisi");
}

Neden metot kullanıyoruz?

Metotlar, en temelde bakacak olursak “don’t repeat yourself” (DRY) dediğimiz yazılım geliştirme prensibinin en iyi implementasyonlarından biridir. Bu, ne demek? DRY, yazılım kalıplarının tekrarlanmasını (code duplication) ve buna bağlı olarakta ortaya çıkan fazlalıkların karmaşaların önlenmesini amaçlayan bir yazılım geliştirme ilkesidir.

Metotlar, bir işlemi tekrar kullanmamız gerektiğinde tek merkezde kontrol edebilmemizi sağlıyor. Örneğin bir program yazıyoruz ve bu programda veritabanına kaydetme yapacağız diyelim. Her kullanıcı için kaydetme kodları tekrar tekrar yazıldığında hem kodlarda tekrara düşeriz ki bu karmaşaya sebep olur hem de yeni bir değişiklik olduğunda onlarca yerde tek tek düzeltme yapmak zorunda kalırız. Oysa bunu bir metotla yaptığımızda kaydetme işlemini yapacağımız noktalarda metodu çağırırız. Değiştirme yapacaksak da sadece metot üzerinde değişiklik yaparız böylece metodu kullandığımız yerler otomatik olarak değişir. Dolayısıyla metotlar hem tekrardan kurtulmamıza, hem kodları anlaşılır kılmamıza, hem de uygulamayı daha rahat kontrol edebilmemize olanak sağlar.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Methods
{
    class Program
    {
        static void Main(string[] args)
        {
            Ekle();
            Console.ReadLine();
        }
        //Metot
        static void Ekle()
        {
            Console.WriteLine("Eklendi");
        }
    }
}

Main metodunun altına “Ekle” adında bir metot oluşturduk. Main’de bu metodu çağırmak istediğimizde ismini yazarak () ile çağırıyoruz. Farklı yerlerde çağırmak istediğimizde sadece Ekle(); yazarak metodu çalıştırabiliriz.

Parametreli Metotlar

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Methods
{
    class Program
    {
        static void Main(string[] args)
        {
            Topla(3,5);
            Console.ReadLine();
        }
        static int Topla(int sayi1, int sayi2)
        {
            int topla = sayi1 + sayi2;
            return topla;
        }
    }
}

Burada oluşturduğumuz Topla metoduna integer tipinde sayi1 ve sayi2 adında 2 tane parametre gönderdik. Main’de bu metot çağrılmak istendiğinde kullanıcının bu iki değeri göndermesi gerekmektedir.

Default Parametreli Metotlar

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Methods
{
    class Program
    {
        static void Main(string[] args)
        {
            var sonuc = Topla(3);
            Console.WriteLine(sonuc);
            Console.ReadLine();
        }
        static int Topla(int sayi1, int sayi2=20)
        {
            int topla = sayi1 + sayi2;
            return topla;
        }
    }
}

Parametrelere değer verdiğimizde bunu default olarak kabul ediyor. Örneğin yukarıdaki örnekte sayi2 parametresine default olarak 20 değerini verdik. Yukarıda kullanıcı sayi2 yerine herhangi bir değer göndermediğinde 20 olarak kabul ediliyor.

C# şart blokları örneklerini incelemek için buraya tıklayabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bunları da okumak ister misiniz