Bu makalede kullanımı oldukça yararlı olan params ifadesinin kullanımını inceleyeceğiz. Yeni bir metod oluşturduğumuzda girmek istediğimiz bilgileri parametrelere aktarabiliyor ve bu parametreleri metod içerisinde kullanabiliyoruz. Fakat ne kadar parametre girileceği belli olmayan bir program kodu yazmak istediğimizde zorlanabiliyoruz. Bunu çözmek için de params ifadesinden yararlanıyoruz.Yazan: Nuran Bahar
Params ifadesinin kullanımı
private void ProsedürAdi (params VeriTipi [] DegiskenAdi)
{
//kodlar
}
Params ifadesinin kullanımını daha iyi anlayabilmek için bir örnek yapalım : Bu örneğimizde arraylistin split metodunu kendimiz yazacağız.( Split metodu bir metinde belirtilen herhangi bir ayraca göre metini böler ). Burada params kullanmamızın amacı ise bu ayraçların sayısını istediğimiz gibi verebilmektir. Projemize yeni bir class ekliyoruz:
class Class1
{
string GirilenMetin = "deneme"; // öncelikle split fonksiyonu ile ayrılacak olan metnimizi global satırda yazıyoruz.
public ArrayList Split(params char[] karakterler) //bir arraylist döndürcek olan Split fonksiyonumuzu tasarlıyoruz. Girilecek karakter sayısını bilmediğimiz için de params ifadesini kullandık
{
string yenimetin = ""; //string veritipli boşluğa eşit olan bir yenimetin adında bir değişken tanımlıyoruz.
ArrayList listem = new ArrayList(); //kullanılacak olan arraylistimizi oluşturuyoruz.
for (int i = 0; i < GirilenMetin.Length;i++) // girilen metnin tüm elemanlarına aynı işlemi yaptırmak üzere bir for döngüsü tasarlıyoruz.
{
foreach (char karakter in karakterler) // foreach döngüsü ile karakterler dizisindeki tüm karakterleri karakter değişkenine aktarıyoruz ve aşağıdaki işlemleri uyguluyoruz:
{
if (GirilenMetin[i] = = karakter ) // eğer girilenmetinin i. karakteri karakterler dizisindeki bir karaktere eşitse :
{
listem.Add(yenimetin); // listeye yenimetini ekliyoruz ve foreach döngüsü sonlanırken herseferinde yenimetini boşluğa eşitliyoruz.
yenimetin = "";
}
}
if (karakterler.Contains(GirilenMetin[i])) // bu if döngüsünde ise karakterler dizisinin girilenmetinin i. karakterini içerip içermediğini kontrol ediyoruz ve eğer içeriyorsa hiç bir işlem uygulamıyoruz
{
}
else { yenimetin += GirilenMetin[i]; // ama eğer içermiyorsa yenimetine girilenmetinin i.karakterini ekliyoruz.
{
}
if (yenimetin != "") // eğer oluşturulan yenimetinimiz boşluğa eşit değilse listemize yenimetini ekliyoruz.
{
listem.Add(yenimetin);
}
return listem; //dönüş değerimiz bir arraylist olduğu için return ifadesiyle arraylisti döndürüyoruz.
}
}
Şimdi de formumuza bir buton sürükleyelim ve butona çift tıklayarak fonksiyonumuzu çağırmak için butonun click eventine şu kodları yazalım:
Class1 yeni = new Class1(); //classımızın bir örneğini oluşturduk.
private void button1_Click(object sender, EventArgs e)
{
foreach (string eleman in yeni.Split (' ', '+', ',','.','-')) // params ifadesi kullandığımız için split metodunun içine ayraç olarak kullanmak için istediğimiz kadar karakter girebiliriz.
{
MessageBox.Show(eleman); // message box ile split fonksiyonunun döndürdüğü listedeki tüm elemanları gösteriyoruz.
}
}