İleri Düzey Metot İşlemleri

Nesne tabanlı programlama için metotlar, oldukça sık başvurulan, esneklik sağlayan ve algoritmik açıdan çok büyük önem arz eder. Metotlar, sistemlerin, projelerin ve otomasyonların etkin ve doğru şekillerde gerçekleşmesi için kullanılır. Her geçen gün yaygınlığı ve etkinliği artan yazılımlar problemin karmaşıklığına bağlı olarak çok kolay veya zor algoritmalar içerdiğini söylemek mümkündür. Ancak algoritmalar zorlaştıkça yapıya hakimiyet ve müdahale de oldukça zorlaşmakta hatta imkansız hale gelmektedir. Bu sebeple yazılımcılar tarafından kullanılan metotlardaki esneklik, problemleri çözmek için kolaylıklar sağlar. Benzer şekilde metotlarda da giriş parametreleri yani değişkenlerin kullanımlarındaki esneklikler oldukça önemlidir. Her geçen gün önemi artan yazılım geliştirme, hemen hemen her iş için değişkenlik göstermekte ve farklı yapılar ile kolaylaştırılmaya çalışılmaktadır.

C# dilini geliştiren kişiler ise yazılımcıların işlerini kolaylaştırmak, gerekli kontroller sağlamak ve hafızayı etkin kullanmak için değişkenlerin, sınıfların ve giriş parametresi olabilecek herhangi bir yapının kullanımını en basit hale getirmek için bazı teknikler geliştirmektedirler. Bu bağlamda C# nesne tabanlı programlamada, nesne mantığına uygun, sınıf ve metotların kullanımını kolaylaştıracak yapılar bulunmaktadır. Bunlardan bir tanesi, değişken veya nesnelere ait default yani varsayılan değerleri arka planda tanımlamaktır. Bir diğeri ise metot giriş parametrelerindeki verilerin gerektiğinde değişmesini sağlayan “ref” ve “out” anahtar sözcükleridir. Bu anahtar sözcükleri değişkenin hafızadaki yerine giderek değişkenin bizzat kendisi ile işlem yapılmasını sağlar. Böylece değişken üzerine yapılan işlem sonrasında değişikliği görmek mümkün olur. Normal şartlarda metotlara dışarıdan giriş parametresi olarak verilen değişken, işlem sonrasında önceki değeri korumaktadır. Çünkü giriş parametresi olarak verilen değişkenin bir kopyası oluşturulmakta ve asıl değişkene dokunmamaktadır. Sonuç olarak asıl değişkenin değerinde herhangi bir değişiklik olmamaktadır.

Metotlar kullanım amaçlarına göre geri dönüş değerlerine sahip olabilmektedir. Ancak bir metodun tekbir geri dönüş değeri olduğu için "ref" ve "out" anahtar sözcükleriyle dönüş değerlerini artırmak mümkün olabilmektedir. Yani metodun yapması gereken işlemi gerçekleştirmesinden sonra return ifadesi ile metodun sonucu olarak bir değer döndürmesi işlemidir.

Çoğu nesne tabanlı programlama dilinde oldukça fazla avantaj sunan ve C# dilinde ise çok önemli bir özellik olan bu yapı aynı isimde ancak farklı giriş parametreler ile tanımlanmış metotlardır. Yani aynı isme sahip birden fazla metot aynı sınıf içinde farklı görevlere hizmet edecek şekillerde ifade edilebilir. Ancak dikkat edilmesi gereken çok önemli bir husus ise aynı isimde tanımlanan bu metotların bütün parametreleri aynı sıra ve aynı veri tiplerinde olamayacağıdır. Buna göre en az bir giriş parametresi diğerlerinden farklı olmalıdır.