C# Eğitimlerimize Prosedürlerimize gönderebileceğimiz Dizi Parametreleri konusu ile devam ediyoruz.
Prosedürlerimize aynı türden ve aynı veri tipine sahip 1000 lerce değer göndermek zorunda kalsaydık ne olacaktı?
Bu sorunun bir benzerini diziler konusunu anlatırken sormuştuk ve cevabımız bir sürü değişken tanımlamak yerine bir dizi tanımlaması yapmak olmuştu.
Aynı durum burada geçerli yukarıda bahsettiğimiz gibi bir durumda kalıyorsa Prosedüre dizi değişkenini değer olarak göndererek bu işin üstesinden gelebiliriz.
Kullanımı
[sourcecode language=”csharp”]
<public void Prosedür_İsmi(DiziTürü[] Dizi_İsmi)
{
// Kodlar
}
[/sourcecode]Bir örnekle olayı anlamaya çalışalım.Bir sınıfta öğrenciler ve aldığı notlar bulunsun. Öğrenci isimlerini ve notlarını sırayla dışarıdan alıp en daha sonra istediğimiz kişiyi sıra numarası ile sorgulayıp notunu öğrenelim.
[sourcecode language=”csharp”]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Kitap_Dizi_Parametresi_Kullanımı
{
public partial class Form1 : Form
{
#region Parametreler
string İsim3;
int a = 0;
int Not3;
int No;
#endregion
#region Definition
string[] İsim4 = new string[0];
int[] Not4 = new int[0];
#endregion
public void ÖğrenciDurumu(string[] İsim1, int[] Not1, int a, string İsim2, int Not2)
{
İsim1[a] = İsim2;
Not1[a] = Not2;
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
İsim3 = textBox1.Text;
Not3 = Convert.ToInt32(textBox2.Text);
Array.Resize(ref İsim4,a+1);
Array.Resize(ref Not4, a+1);
ÖğrenciDurumu(İsim4, Not4, a, İsim3, Not3);
textBox1.Clear();
textBox2.Clear();
a++;
}
private void button2_Click(object sender, EventArgs e)
{
No = Convert.ToInt32(textBox3.Text);
textBox4.Text = İsim4[No].ToString();
textBox5.Text = Not4[No].ToString();
}
}
}
[/sourcecode]Kodlamamız bu şekildeydi. Bizi ilgilendiren kısmına hemen göz atalım.
[sourcecode language=”csharp”]
public void ÖğrenciDurumu(string[] İsim1, int[] Not1, int a, string İsim2, int Not2)
{
İsim1[a] = İsim2;
Not1[a] = Not2;
}
[/sourcecode]Prosedürümüze aynı normale bir parametre değeri gönderir gibi dizi tanımlamlarımızı gönderiyoruz. Burada dikkat etmemiz gereken gönderdiğimiz dizi parametre değeri prosedüre gönderilirken new sözcüğü ile yeni bir nesne türetiliyor gibi gönderilmiyor.
Bu diziyi oluşturma işlemi sınıf yada kullanılacağı metodlar içinde gerçekleştiriliyor.
Sonuca bir göz atalım.
Bir önceki derste gördüklerimizi de işin içine katarak geniş bir kodlama yapmış olduk. Bir sonraki yazımda görüşmek üzere.