Sesli Özet
← Ünite 10

Ünite 10: İleri Düzey Metot İşlemleri — Sesli Özet

Dinleme Premium'a özel. 1. ünitenin sesli özeti ücretsiz; bu ünitenin seslendirme metni de aşağıda ücretsiz okunabilir.
SponsorluReklam Alanı · 300 × 250
Metni oku

Metotlar, nesne tabanlı programlamada kodun daha anlaşılır, fonksiyonel ve basit çalışmasını sağlayan temel yapılardır. C# dilinde değişkenler tanımlanırken başlangıçta değer atamak zorunlu olmasa da, yerel olarak tanımlanan değişkenlerin varsayılan (default) değerlerine hakim olmak, hataların önüne geçmek ve doğru sonuçlara ulaşmak için kritiktir. Bir metot içerisinde tanımlanan değişkenlere değer atanmadığı durumlarda derleyici hata verebilir. Bu gibi durumlarda 'default' anahtar sözcüğü kullanılır. Örneğin, 'double' bir değişken için 'default(double)' ifadesi, değişkenin varsayılan değerini (0) almasını sağlar. Ancak değişkenler genel (global) olarak tanımlanmışsa, bu varsayılan değerler otomatik olarak atanır. Değişkenlerin yanı sıra sınıflar ve yapılar (struct) da varsayılan değerlerle kullanılabilir. Örneğin, bir sınıf nesnesi başlangıçta değer almasa bile, içindeki değişkenler kendi veri türlerine göre varsayılan değerleri (int için 0, bool için false, string için null gibi) otomatik olarak alır. Bu esneklik, yazılımcının her durumda manuel atama yapma zorunluluğunu ortadan kaldırarak hafızanın daha verimli yönetilmesine katkı sağlar. Normal şartlarda bir metota parametre olarak gönderilen değişkenin bir kopyası oluşturulur. Bu nedenle metot içerisinde yapılan değişiklikler, metot dışındaki asıl değişkeni etkilemez; asıl değişken ilk değerini korur. 'ref' ve 'out' anahtar sözcükleri, değişkenin kopyası yerine hafızadaki gerçek referansı üzerinden işlem yapılmasını sağlar. 'ref' anahtar sözcüğü kullanıldığında, metota gönderilen değişkenin başlangıçta bir değere sahip olması zorunludur. Metot içerisinde yapılan işlemler, doğrudan bu değişkenin hafızadaki değerini günceller. Böylece metot tamamlandığında, değişkenin yeni değeri korunmuş olur. 'out' anahtar sözcüğü ise 'ref' ile benzer bir işlev görse de, en temel fark başlangıç değeri zorunluluğudur. 'out' kullanılan parametreler için metot çağrılmadan önce bir değer atama zorunluluğu yoktur; değişkenin değeri metodun içerisinde tanımlanabilir. Ayrıca bu anahtar sözcükler, tek bir geri dönüş değerine sahip metotlardan birden fazla değerin güncellenerek döndürülmesine olanak tanır. Aşırı yükleme (overloading), aynı sınıf içerisinde aynı isme sahip ancak farklı parametre listelerine (farklı tipte veya sayıda) sahip birden fazla metodun tanımlanmasıdır. Bu yapı, yazılımcıya aynı işi farklı senaryolar için farklı parametrelerle yapabilme esnekliği sağlar. Aşırı yüklemede dikkat edilmesi gereken en kritik husus, metotların parametrelerinin sıra ve veri tipi bakımından birbirinden farklı olması gerektiğidir. Eğer iki metot aynı isme sahipse ancak parametre yapıları tamamen aynıysa, derleyici hata verecektir. En az bir parametrenin tipi veya sırası mutlaka farklı olmalıdır. Bu özellik, C# dilindeki hazır sınıflarda da yaygın olarak kullanılır. Örneğin, 'String.Format' metodu, farklı parametre kombinasyonları ile birçok kez aşırı yüklenmiştir. Bu sayede kullanıcı, ihtiyacına göre uygun olan metot imzasını seçerek aynı fonksiyonel amaca hizmet eden farklı işlemleri gerçekleştirebilir.