Sizinde bildiğiniz gibi Nesnel Programlamada programlama birimi olarak Sınıflar (class) kullanılıyor. Bu nedenle üzerinde durulması gerek önemli bir konu. Bu makalede veritabanı uygulamaların sıkça kullanığımız bir sınıf’ın yapısını iceleyip kendi sınıfımızı yaratacağız.

SqlCommand cmd = new SqlCommand();
cmd.Parameters.Add(“@deger”, SqlDbType.VarChar).Value = “Hiç Önemli Değil”;
Bu yapıyı kendimiz oluşturarak class’lar arasındaki hiyerarşinin daha iyi anlaşılcağını düşünüyorum.
Öncelikle burada dikkat etmeniz gereken kodun ne işe yaradığı değil. Bizim yapmak istediğimiz “SqlCommand” nesnesine parametre eklerken kullandığımız yazım şekli. Bu yüzden SqlCommand nesnesinin Constructure parametrelerini yazmadım. Şimdilik bizim için hiçbir önemi yok.
Kodu inceliyecek olursak, “cmd” SqlCommand nesnesinden türetilmiş bir değişken ve “cmd” nin türetildiği sınıfa (class) ait “Parameters” özelliği (property) çağrılmış. Bu özelliğin ise üzerinde işlem yapılan yine bir sınıf mecvut ve o sınıfın “Add” isminde bir fonksiyonu var. Daha bitmedi, bu fonksiyonda return edilen yine bir sınıf ve bu sınıfa ait “Value” özelliği (property) mecvut.
Öncelikle yapmamız gereken yukarıdaki örnekteki “Add” fonksiyonunun return ettiği sınıfı (SqlParameter) oluşturmak. En içten dışa doğru tüm sınıfları yazalım.

class TekParametre

{
string deger;
public string Degerim
{
get { return deger; }
set { deger = value; }
}
}
Ben sınıfa TekParametre ismini verdim tabiki siz farklı isimde verebilirsiniz. Dikkat edin yukarıdaki örnekde “Add” fonksiyonunun return ettiği sınıfın birde “Value” isminde özelliği vardı. İşte “TekParametre” sınıfında da bu ana benzer “Degerim” isminde bir özellik tanımladık.

Bir sonraki adımda “Parameters” özelliğinin return ettiği class’ın “Add” özelliğini oluşturalım. Tabiki bunun için ilk önce “Parametrem” isminde bir class oluşturmamız gerekli.

class Parametrem {

public TekParametre Ekle(string deger1,string deger2)
{
TekParametre yeni=new TekParametre();
return yeni;
}
}
Yazdığımız kodu inceliyecek olursak, Sınıf içerisinde “Ekle” isminde bir fonksiyon var ve bu fonksiyon “TekParametre” tipinde bir değer return ediyor.

Tekrar hatırlatmak isterimki, amacımız örnekteki kodun yaptığı işi yapan bir yapı oluşturmak değil. Sadece aynı yazım şekline sahip bir class hiyerarşisi oluşturmak. Bu yüzden “Ekle” methodunun parametreleri ve içerisinde yapılan işlem bizim için önemli değil.

Son olarak yapmamız gereken, örnekteki “cmd” değişkeninin yaptığı işi yapan bir sınıf oluşturmak.

class Uygula {

public Parametrem UygulaParametresi
{
get { return new Parametrem(); }
}
}
“Uygula” isminde bir class daha oluşturalım ve içerisine, örneğimizde olduğu gibi, “Parametrem” isminde bir özellik tanımlayalım.

Sonucu görmek istersek farklı bir class’tan “Uygula” sınıfını çağıralım.

public partial class Form1 : Form {

public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Uygula cmd = new Uygula();
cmd.UygulaParametresi.Ekle(“deneme”, “deneme”).Degerim = “işte oldu”;
}
}
Yazım şekline dikkat edin ilk verdiğimiz örnekteki yazım şeklini elde etmiş olduk.
Kodun Tamamı;
class Uygula {

public Parametrem UygulaParametresi
{
get { return new Parametrem(); }
}
}
class Parametrem {

public TekParametre Ekle(string deger1,string deger2)
{
TekParametre yeni=new TekParametre();
return yeni;
}
}
class TekParametre {

string deger;
public string Degerim
{
get { return deger; }
set { deger = value; }
}
}