C# programlama dilinde metodları ve dizileri gördüğümüze göre artık bu iki konutu tek bir örnekte birleştirebilir ve metodlara sınırsız sayıda parametre sayısı göndermekte kullanabiliriz. Bu arada kastettiğim, bir metoda sonsuz sayıda parametre göndermek değil; parametre sayısı çeşitlemelerini genişletmek.
Örnek olarak iki sayının ortalamasını hesaplayarak yazdıran şöyle bir metodumuz olsun:
static void Main(string[] args)
{
OrtalamaHesapla(2,3); //2.5
}
public static void OrtalamaHesapla (double sayi1, double sayi2)
{
double ortalama = (sayi1 + sayi2) / 2;
System.Console.WriteLine(ortalama);
}
Kullanıcılar, OrtalamaHesapla metodunu kullanarak artık istedikleri iki sayının ortalamasını hesaplayarak yazdırabilirler. Peki bir kullanıcının üç sayının ortalamasını hesaplaması gerektiğinde ne yapacağız? Bunun olası bir yanıtı, OrtalamaHesapla metodu için 3 parametre alan bir overload yazmak olabilir. Peki 4. 5, ... gibi her farklı adette sayı için ayrı bir overload yazmamız gerekirse tek bir metod için yüzlerce farklı overload bile yeterli olmayacak, çünkü kullanıcı her zaman daha fazla sayıda sayının ortalamasını hesaplamak isteyebilir.
Bu problemin tek çözümü dizi kullanmak olmasa da parametre olarak gönderilmek istenen sayıları tek bir dizide göndermek, bu problem için net bir çözümdür.
static void Main(string[] args)
{
double[] sayiDizisi = {2, 4, 6, 8};
OrtalamaHesapla(sayiDizisi); //5
}
public static void OrtalamaHesapla (double[] sayilar)
{
double toplam = 0;
for (int i=0; i<sayilar.Length; i++)
toplam += sayilar[i];
double ortalama = toplam / sayilar.Length;
System.Console.WriteLine(ortalama);
}
Önceki benzer yazılarımdan bazıları için;
bkz: C# ile pürüzlü dizi (jagged array) kullanımı
bkz: C# ile iki dizinin elemanlarını toplamak
bkz: C# bir dizinin kaç boyutlu olduğunu görmek
bkz: C# ile iç içe foreach döngüsü kullanımı ve örnekleri
bkz: C# Dizi Elemanlarının Toplamı Nasıl Bulunur?
bkz: C# Dizi Elemanlarının Kaç Kere Tekrarlandığını Bulmak