Bu makalemizde Kendi ArrayList in ADD methodunu yazarak ileri bir Prosedür yazalım.

Peki Prosedür Nedir? Prosedür, herhangi bir değer döndürme zorunluluğu olmadan, herhangi bir işlem yaptırmaya yarayan kod bloklarıdır. Örneğin ArrayList Class’ının ADD methodu bir prosedürdür. Diziye eleman eklemeye yarar.(Hiçbir şey döndürmez.)

Örneğimiz için Class1 isimli Sınıfımızı oluşturduktan sonra ilk etapta Arraylist Class ınınADD methoduna benzer bir ekle methodu(Prosedür) oluşturalım.

Şimdi kodlar üzerinde adım adım prosedür yazma işlemini anlayalım.

class Class1
    {

object[] dizi;
//Object türünde bir dizi tanımladık. İlk Değerini aktarmadık çünkü Arraylist dinamik bir dizi olduğu için kullanıcının veri
eklemesi sonucunda eleman sayısı arttırılmalıdır.

public void ekle(object deger)
//Bu satır ise prosedürün tanımlandığı kısımdır. Prosedürün çalışması için Object türünde parametre yollanmalıdır.

        {
//İşte ufak bi nüans, ilk eleman eklendiği zaman ne olacak? Tabii hiçbir eleman olmadığı ve hatta dizimiz henüz boyutlanmadığı için hata verecek. İlk Etapta devreye Catch bloğu girecek. Önce ilk eleman eklenecek ve bundan sonraki
süreçlerde try bloğu çalışacaktır.

try

            {
object[] geciciDizi = new object[dizi.Length];
//Bilindiği üzere C# ta dizi eleman sayısı değiştirilmek üstendiğinde dizimizde bulunan elemanlar sıfırlanıyor.
İşte eleman sayısı arttırılmadan önce gecici bir dizi tanımlayalım ki elemanları önce buraya aktaralım.

geciciDizi = dizi;
//Burada dizi olduğu gibi gecicidiziye aktarılıyor. Direkt eşitleme yaptık çünkü iki dizi de aynı özelliğe sahip.

dizi=new object[geciciDizi.Length+1];
//Sonunda dizinin eleman sayısı bir arttırıldı. Çünkü yedeği geçici diziye aktarıldı.

//Ve bir döngü yardımıyla gecici dizi de ki elemanlar asıl sahibi olan dizi ye aktarıldı
for (int i = 0; i < geciciDizi.Length; i++)

                {

dizi[i] = geciciDizi[i];

                }

dizi[dizi.Length – 1] = deger; //Ve parametreyle gönderilen değer dizinin son hanesine yazdırıldı.

            }
            catch   //Projemiz ilk eleman eklendiği zaman hata vereceğinden, Catch bloğu çalışacak…
            {
                dizi=new object[1];

dizi[0]=deger;

            }
        }
}