Serdar YILMAZ / Software Developer
Bizimkisi Bir “Bug” Hikayesi...
Akbank Bankacılık Merkezi
Serdar Yılmaz C# – Değişken Sayıda Parametre Alan Metotlar

C# – Değişken Sayıda Parametre Alan Metotlar

dotnetAşağıda yer alan programı inceleyecek olursak; EnBuyuk() metodu int tipinde 2 adet parametre almaktadır ve sayısal değeri en büyük olanı geri döndürmektedir. EnBuyuk() metoduna çağrıda bulunabilmek için sadece ve sadece 2 adet parametre girmemiz gerekmektedir.

private static int EnBuyuk(int sayi1, int sayi2)
{
    if (sayi1 > sayi2)
        return sayi1;
    else
        return sayi2;
}

static void Main(string[] args)
{
    Console.WriteLine(EnBuyuk(100, 250));   // Çıktı:250
}

Bir metoda değişken sayıda parametre gönderebilmek için params anahtar sözcüğünü kullanmamız gerekmektedir. Yukarıdaki örnekte yer alan EnBuyuk() metodu sadece 2 adet parametre alabilmekteydi, şimdi bu metodu değişken sayıda parametre alacak şekilde düzenleyelim;

private static int EnBuyuk(params int[] sayilar)
{
    return sayilar.Max();
}

static void Main(string[] args)
{
    Console.WriteLine(EnBuyuk(100, 250));            // 2 parametre verildi. ÇIKTI:250
    Console.WriteLine(EnBuyuk(518, 456, 537, 931));  // 4 parametre verildi. ÇIKTI:931
    Console.WriteLine(EnBuyuk(258, 174, 56));        // 3 parametre verildi. ÇIKTI:258
}

Görüldüğü üzere parametre sayısında herhangi bir kısıt bulunmamaktadır. Metot, iki parametre verilerek de çağrılabilir, dört parametre verilerek de. Çalışma mantığı ise gayet basittir; params anahtar sözcüğü ile dinamik bir dizi oluşturulur ve parametre olarak gönderilen değerler bu diziye eklenir. Metot içerisinde de dizi içerisindeki parametreler kullanılarak istenilen işlemler yapılabilir.

Uygulama

Bu örnekte özellikle dikkatinizi çekmek istediğim nokta; sabit parametreler ile değişken sayıdaki parametrelerin birlikte kullanılabileceği. CiftSayilar() metoduna girilen ilk parametre, sabit bir parametredir. Sayıların yan yana mı, alt alta mı ekrana yazılacağını belirtecektir. İlk parametreden sonra girilen tüm parametreler “sayilar” dizisi içerisinde tutulacaktır.

Metot; “sayilar” dizisi içerisinde bulunan sayılardan çift olanları ekrana yazdırmaktadır.

private static void CiftSayilar(string duzen,params int[] sayilar)
{
    if (duzen=="yanyana")
    {
        for (int i=0;i<sayilar.Length;i++)
        {
            if (sayilar[i] % 2 == 0)
                Console.Write("{0,-6}", sayilar[i]);
        }
    }
    else if(duzen=="altalta")
    {
        for (int i = 0; i < sayilar.Length; i++)
        {
            if (sayilar[i] % 2 == 0)
                Console.WriteLine(sayilar[i]);
        }
    }
    else
    {
        Console.WriteLine("Böyle bir düzen bulunmamaktadır.");
    }
}

static void Main(string[] args)
{
    CiftSayilar("altalta", 15, 78, 1, 12, 101, 89, 56);
    CiftSayilar("yanyana", 12, 54, 68, 11, 7, 3);
}

Serdar YILMAZ


Bu İçeriği Arkadaşlarınızla Paylaşmak İster misiniz?

4 Yorum

  1. Ayşenur
    26 Ocak 2020 de 17:02 · Cevapla

    Teşekkür ediyoruz, gerçekten çok güzel ve anlaşılır hazırlanmış dökümanlar. Gereksiz bilgi yığını da yok

  2. Osman
    3 Aralık 2019 de 11:01 · Cevapla

    adamsın hocam çok iyi anladım senin sayende sınavı geçtim

  3. gülsüm
    24 Ocak 2019 de 17:47 · Cevapla

    anlatımınız çok iyi ancak program çıktılarını da görebilirsek daha iyi olur

    • Serdar Yılmaz
      25 Ocak 2019 de 00:10 · Cevapla

      Merhaba,

      Olumlu bildiriminiz için teşekkür ederim. Yayınlayacağım diğer içerikler de yorumunuzu dikkate alacağım.

Bir Yorum Yapın