C# Parametre Dizileri

Parametre olarak herhangi bir sayıda farklı türlerde bağımsız değişkenler alabilen metotlar yazılmak istendiğinde, parametre dizileri kullanılabilir.

Dizi Bağımsız Değişkenleri

Parametre olarak geçirilmiş bir değerler kümesindeki en küçük değeri bulmak için metot yazılmak istendiğinde bir dizi kullanılabilir.

Örnek: Parametre dizisi kullanılarak dizinin en küçük elemanın bulan programın kodu yazılsın.

[csharp]public static int Min(params int[] paramsList)
{
int c = paramsList[0];
foreach (int i in paramsList)
{
if (i < c)
{
c=i;
}
}
return c;
}
static void Main(string[] args)
{
int[] dizi = new int[3];
dizi[0] = 5;
dizi[1] = 9;
dizi[2] = 2;
int enKucuk = Min(dizi);
Console.WriteLine(“En küçük sayı:” + enKucuk);
Console.ReadLine();
}[/csharp]

Yukarıda verilen 3 sayıdan (5, 9, 2) en küçüğünü bulmak için Min isimli, int türünde bir dizi biçiminde tek bir parametresi olan, bir statik metot yazılmıştır. Main programda, en küçüğü bulunmak istenen 3 sayı, dizi isimli 3 elemanlı diziye atanmıştır. Dizi değerleri en küçüğünün bulunması için Min isimli metoda gönderilmiştir. Metottan dönen en küçük değer ekrana yazdırılmıştır. Ekran çıktısı aşağıdaki gibidir.

Ekran çıktısı:
en küçük sayı = 2

“params” Dizisi Tanımlama

Params anahtar sözcüğü bir dizi parametresi düzenleyicisi olarak kullanılır. Bir metodun aldığı parametre sayısı çok sayıda olabilir önceden ne kadar parametre alınacağı bilinemeyebilir. Böyle durumlarda “params” anahtar kelimesi kullanılabilir. Bunun yanında bir eleman kümesini parametre olarak geçirmek istiyorsanız params anahtar sözcüğü kullanılabilirsiniz.

  •  Params anahtar sözcüğünden sonra kullanılacak parametre tek boyutlu bir dizi gibi tanımlanmalıdır.
  •  Params anahtar sözcüğü parametre tanımlamada sadece bir kez kullanılır.
  •  Bir metoda birden fazla params anahtar sözcüğü kullanılamaz.
  •  Params ile tanımlanan değişkenden sonra herhangi bir değişken tanımlanamaz.
  •  Params anahtar sözcüğü ile tanımlanan değişken diğer değişken tanımlamalarından önce olamaz.
  •  Parametre dizesinin en sonunda yer alır.
  •  Metot çağrılırken parametre verileri virgül (,) ile ayırt edilerek gönderilir.

Örnek: Params anahtar sözcüğü tanımlanarak dizinin en küçük elemanın bulan programın kodu yazılsın.

 

[csharp]public static int Min(params int[] paramList)
{
int c = paramList: [0];
foreach (int i in paramList:)
{
if (i < c)
{
c = i;
}
}
return c;
}
static void Main(string[] args)
{
int min = Program.Min(7,8,9, 4);
Console.WriteLine(“en küçük sayı = ” + min);
Console.ReadLine();
}[/csharp]

Yukarıda verilen 4 sayıdan (7, 8, 9, 4) en küçüğünü bulmak için params anahtar sözcüğü kullanarak Min metodunu istediğiniz kadar bağımsız değişken olarak çağırabilirsiniz. Main programda 4 sayı, Min isimli metoda sayıların en küçüğü bulunmak üzere gönderilmiştir.

[csharp]int min=Program.Min(7,8,9,4);
Derleyici bu kodu aşağıdaki koda çevirir.

int[] dizi=new int[3];
Dizi[0]=7;
Dizi[1]=8;
Dizi[2]=9;
Dizi[3]=4;
int min=Program.Min(dizi);[/csharp]

Metottan dönen en küçük değer ekrana yazdırılmıştır. Ekran çıktısı aşağıdaki gibidir.

Ekran çıktısı:
en küçük sayı = 2

“params Object []”

“int” türü bir parametre dizisi bir metot çağrısında, herhangi bir sayıda int bağımsız değişkeni kullanımına izin verir. Params object türü, bağımsız değişkenlerin sayısı değil de türleri değişirse, değer türlerini nesnelere dönüştüren kodu üretir. Herhangi bir türde bağımsız değişken geçmesine olanak sağlayan herhangi bir sayıda object bağımsız değişkeni kabul eden bir yöntem bildirmek için object türü bir parametreler dizisi kullanılabilir.

Örnek: Params object türü tanımlanarak sayı, harf ve kelime gibi farklı türde olan değişken değerlerini ekrana yazan programın kodu yazılsın.

[csharp]public static void Use(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
Console.Write(list[i] + ” “);
}
Console.WriteLine();
}
static void Main(string[] args)
{
Use(1, ‘A’, “AHMET”);
Console.ReadLine();
}[/csharp]

Yukarıda verilen 3 değeri (1, A, AHMET) ekrana yazdırabilmek için params object türü kullanarak farklı değişken türlerinin geçişine izin verebilirsiniz. Main programda ki 3 değer(1, A, AHMET) , Use isimli metoda ekrana yazdırılmak üzere gönderilmiştir. Ekran çıktısı aşağıdaki gibidir.

Ekran çıktısı:
1 A AHMET

“params” Dizisini Kullanma

Aşağıdaki örnekte deneme.carpım isminde bir static yöntem yazacaksınız. Bu yöntemin amacı kendisine geçirilen int türü değişkenlerin çarpımlarını hesaplayıp, sonucu int olarak döndürmektir. Bunu deneme.carpım yöntemi params int[ ] parametresi alacak şekilde yazarak yapacaksınız.

[csharp]public static int carpım(params int[] paramList)
{
int carpımsonucu = 1;
foreach (int i in paramList)
{
carpımsonucu *= i;
}
return carpımsonucu;
}
static void Main(string[] args)
{
Console.WriteLine(“Sayıların Çarpım Sonucu =”+deneme.carpım(1,2,3,4,5,6,7,8,9,10));
Console.ReadLine();
}[/csharp]

Yukarıda verilen 10 sayının (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) çarpımlarının sonucunu bulmak için params dizisi kullanarak carpım isimli int değerlerden oluşan dizi biçiminde bir statik metot yazılmıştır. Main programda, çarpımlarının sonucu bulunması için 10 sayı (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) carpım isimli metoda gönderilmiştir. Metottan dönen çarpım sonucu değeri ekrana yazdırılmıştır. Ekran çıktısı aşağıdaki gibidir.

Ekran çıktısı:
Sayıların Çarpım Sonucu = 3628800

 

Kaynak: Megep Modülleri

Ahmet Şenlik

Kocaeli Üniversitesinde Bilgisayar Programcılığı okudum DGS ile 2016 yılında Sakarya Üniversitesi Bilgisayar mühendisliğini kazandım. Yazılımla uğraşmayı çok seviyorum bu alanda kendimi daha da geliştirmeyi düşünüyorum. Eğer siz de seviyorsanız bu işi devam edin başlamadıysanız başlayın başaracağınıza inanın. :)

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.