Son Haberler
Anasayfa / Yazılım / C# / Parametreli Metot Oluşturma

Parametreli Metot Oluşturma

Bu yazımda C# ortamında oluşturulan metotlara parametre tanımlamaktan bahsedeceğim. Bu yazıyı okumadan önce aşağıdaki linkte yer alan yazıya bir göz atmanızı öneririm.

Bir Sınıftan Metot Tanımlama ve Bir Sınıftan Örnekleme Yapma

Metotlarımızda bazen parametrelere ihtiyaç duyarız. Örneğin bir uygulama içinde MesajGoster gibi bir metodumuz var. Ve biz bu metodu bir takım şartlara bağlı olarak çalışmasını istiyoruz. Yani ancak belli şartlar ile çalışmasını istediğimiz durumlar söz konusu. İşte bu gibi durumlarda bir metodun nasıl işlem göreceğini belirtebilmek amacı ile metotlarımız parametreli olarak tanımlanabilir. Bir metot bir çok farklı parametreli şekli ile tanımlanabilir. Örneğin şöyle düşünelim, bir metodumuz var ParaCekme diye. Bu metodu parametreli yapıyoruz. İşte para cek ama 10 lira çek, para çek ama 20 lira çek, para çek ama 50 lira çek, para çek ama diğer miktarda çek gibi. Parametreden kastımız tam olarak bu. Para çekeceğiz ama nasıl çekeceğiz? Bu gibi durumlarda parametre tanımlamak gerekir.

Şimdi önceki yazıyı okudu iseniz ve ordaki uygulamayı gerçekleştirdi iseniz devam edelim. deneme.cs sınıf dosyamı açıyorum ve içindeki kodları aşağıdaki gibi değiştiriyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    public class deneme
    {
        static void Main(string[] args)
        {
            
        }
        //fonksiyonuma bir parametre atadım.
        public void MesajGoster(string isim)
        {
            //Merhaba Dünya yazdırıp bir alt satıra geçiyorum ve sonra isim kısmı içeriği yazılacak
            Console.Write("Merhaba Dünya\n{0}!",isim);
        }
    }
}

Daha sonra uygulamamda DenemetTest.cs dosyasını açıyorum ve kodları aşağıdaki gibi düzenliyorum.

public class DenemeTest
    {
        public static void Main ( string[] args)
        {
            //deneme sınıfımından instance alıyorum adını ornek verdim
            deneme ornek = new deneme();
            //İsminizi soruyorum
            Console.Write("Lütfen Adınızı Giriniz:");
            //klavyeden girilen değeri isim değişkenime alıyorum
            string isim = Console.ReadLine();
            //bir boş satır bırakıyorum
            Console.WriteLine();
            //görüleceği üzere buradan deneme sınıfı altında yer alan bir metota erişebiliyorum 
            //ve parametreli olduğu için parantez içinde isim değişkenimi yolluyorum
            ornek.MesajGoster(isim);
        }        
        
    }

Bu sınıfım altında deneme sınıfından bir instance aldım ve adını ornek verdim. Daha sonra kullanıcıdan adını girmesini istiyorum. Bunu Readline metodu ile okuyup string tipinde isim adında bir değişkene alıyorum. Daha sonra deneme sınıfında yer alan MesajGoster metoduma erişiyorum.

Metotlarımızda birden çok parametrede kullanabiliriz. Aynen tek parametreli metotda olduğu gibi metotumuzun parantez bölümünde diğer parametreleri de virgül ile ayırarak ve veri tiplerini belirterek oluşturabiliriz. Bir yöntemin çağırıldığı noktada bu yönteme gönderilen verilerin, eğer bu yöntem yani bu metot bir veya birden fazla parametre içeriyor ise parametre sayısı kadar bilginin gelmesi gerekir. Aksi halde hata meydana gelir. Yani örneğimde benim metodum tek parametreli idi ve ben bir bilgi isim bilgisi yolladım. Diyelim ki metodum 3 parametreli olsun, isim, soyisim yaş parametreleri olsun. Eğer ben ilgili metodu kullanırken sadece isim veya sadece isim ve soyisim yollar isem hata meydana gelir. Aynı şekilde 3 parametreli bir metoda 3’ten fazla parametre yollar isemde hata olur. Bu arada değinmeden geçmeyelim parametre ile birlikte bazı kaynaklarda argüman kullanıldığını da görebilirsiniz, aklınızda bulunsun. Metot argümanları ve metot parametreleri aynı şeydir.

Şimdi metodumuzun parametreleri ile yollayacağımız bilgilerin parametreleri sayısı eşit olmalı dedik. Ama bunun yanı sıra bu parametlerin veri tipleri de birbiri ile tutarlı olmalı. Diyelim ki ben bu üstteki örnekte string tipinde bir parametre tanımladım ben buraya integer tipinde bir değer yollayamam hata alırım. Yani parametreler aynı sayıda, aynı tipte ve bu veriler yollanırken tipler önemli olduğu için aynı sırada da yollanması önemlidir. Örneğin string ve int tipinde iki parametre tanımladım. Veri yollarken ben eğer int ve string şeklinde sıra ile yollarsam hata olur. Tabi bazı istisnai durumlar vardır ancak şimdilik buna değinmiyoruz. Bunu zaten parametreleri tanımlarken belirtiyoruz. Bunun detayına burda girmiyorum.

Şimdi UML kısmına gelelim. deneme sınıfımızın UML diyagramında bir takım değişiklikler oldu. Metodumuz bir parametre aldı, dolayısı ile yeni şeklimiz artık aşağıdaki gibi olur.

2013031906

Bir yorum

  1. teşekkürler ismail bey verdiğiniz bilgiler için

Bir cevap yazın

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