C# ile kapsülleme örneklerimize devam ediyoruz şimdi yapacağımız uygulama bir windows form uygulaması, Amacımız bir önceki örnekte olduğu gibi emlak programında kullanılan değişkenleri kapsülleyerek dış etkenlerden koruyacağız. Kullanıcının girdiği semt adı her zaman büyük harflerle yazılması gerekiyor ama kullanıcı küçük girerse bunu kapsülleme kullanarak büyük harfe çevireceğiz, aynı işlemi katno,oda sayısı ve oturma alanı değişkenlerinde negatif değer girildiyse pozitife çevirerek yapacağız. İlk olarak aşağıdaki form tasarımını yapıyoruz.
Form tasarımı bittikten sonra uygulamamıza yeni bir sınıf ekleyip
public class emlak { public string semt; public int odasayisi; public int katno; public double alan; }
bu sınıftaki tüm değişkenler public olduğu için her yerden erişilebilir ve değiştirilebilir bunu engellemek için private yapmamız lazım ama direkt private yaparsak da programdan erişilemez, işte tam bu noktada kapsülleme devreye giriyor değişkenleri kolay bir şekilde nasıl kapsüllüyorduk her değişkenin üzerinden sağ tıklayıp tıklayıp->Refactor->Encapsulate dememiz yeterli idi
Bu işlemi yaptıktan sonra kodları aşağıdai gibi değiştiriyoruz burada value.ToUpper() ile büyük harfe, Math.Abs(value); girilen değerler pozitife çevriliyor
public class emlak { private string semt; public string Semt { get { return semt; } set { semt = value.ToUpper(); } } private int katno; public int Katno { get { return katno; } set { katno = Math.Abs(value); } } private int odasayisi; public int Odasayisi { get { return odasayisi; } set { odasayisi = Math.Abs(value); } } private double alan; public double Alan { get { return alan; } set { alan = Math.Abs(value); } } }
Şimdi tekrar form tasarımına dönüp Ekle butonunu içine aşağıdaki kodları yazıyoruz ve bu kadar .. :) iyi çalışmalar….
private void button1_Click(object sender, EventArgs e) { emlak evim = new emlak(); evim.Semt = textBox1.Text; evim.Katno = Convert.ToInt32(textBox2.Text); evim.Odasayisi = Convert.ToInt32(textBox3.Text); evim.Alan = Convert.ToInt32(textBox4.Text); ListViewItem kayit = new ListViewItem(); kayit.Text = evim.Semt; kayit.SubItems.Add(evim.Katno.ToString()); kayit.SubItems.Add(evim.Odasayisi.ToString()); kayit.SubItems.Add(evim.Alan.ToString()); listView1.Items.Add(kayit); textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; }
çök guzel bı ornek