Temel C# Konuları 1.(TextBox,Label ve Buton Kullanımı)
Merhaba arkadaşlar.Bu ilk konumuz olacak.Bir süre C# ile ilgili araçların kullanımdan bahsetmeye çalışacağım.Daha sonra C# ta yararlı ve öğretici uygulamalar yapacağız.Bugünkü konumuz TextBox ve buton kullanımı.
Textbox ve Buton C#'ın vazgeçilmez iki bileşenidir. Genelde Texbox içerisindeki veriyi butonla kontrol ederiz.Bunu örneklerle daha iyi anlayacaksınız.
Öncelikle visual studio açalım.Sırasıyla File-New-Project tıklayalım.
Daha sonra gelen ekranda Sol sekmede C# altında Windows'u seçelim ve sağ tarafta Windows Form Application'ı seçelim.
Burada Projemize bir isim verip nereye kaydedeceğimiz seçip OK tuşuna basalım.Şuan bulunduğumuz form projemizi şekillendireceğimiz yerdir.Bu form üzerine elemanlarımızı ToolBox üzerinden yerleştiririz.
Kullanacağımız bütün elemanlar ToolBox içindedir.Herhangi bir elemanı sürükleyerek yada çift tıklayarak formumuza ekleyebiliriz.Bu örneğimizde bir adet Textbox,bir adet Button ve bir adet Label kullanacağız.Bunları sayfamıza ekleyelim.Aşağıdaki gibi bir görünüm elde edeceğiz.
Şimdi yapmak istediğimizi anlatayım.Çok basit bir uygulama yapacağız.TextBox ' a girilen içeriği buttona basıldığı anda label'a yazacağız.Bunu yapmak için button1'e çift tıklayıp click özelliğine giriyoruz.Click'in anlamı butona basıldığı zaman içerisindeki kodları çalıştır olarak düşünebilirsiniz.Bunu ilerleyen derslerde daha detaylı bir şekilde yapacağız.Çift tıklayıp butonun içerisine girdik.Aşağıdaki gibi bir görüntü elde edeceğiz.
Bu ekran bizim kod kısmımız.Diğer taraf Desing kısmımızdı istediğimiz anda diğer tarafa geçebiliriz.Burada button1_Click'e ait iki tane süslü parantez var.Butona tıklanınca çalıştırmak istediğimiz kodları buraya yazacağız.Aşağıda yazdığım kodları oraya ekleyin.Buarada buarada yazdığım kodları kopyala yapıştır yoluyla almazsanız sizin açınızdan daha iyi olur kod yazmada alışkanlık kazanmış olursunuz.
label1.Text = textBox1.Text;
bu kodu ekledik ve yukarıdaki yeşil play düğmesinden programımızı çalıştırıyoruz.TextBox'a herhangi birşey yazın ve buton'a basın.TextBox'a yazmış olduğunuz yazının label1'e yazıldığını göreceksiniz.
Programı kısaca anlatmaya çalışacağım.TextBoxlar ve Label'lar her zaman string ifade tutar.Sayısal rakamlarda tutarlar ancak yinede içerisinde gösterebilmemiz için string'e çevirmemiz gerekir.Mesela bu örnekte TextBox'ın textine yazığımız ifayi label'ın textinde gördük.Yani text dediğimiz şey aslında görünen kısımdır.Yani bir elemanın içerisinde ne görmek istiyorsak onun text özelliğine yazarız.
Burada Butona basdığımız anda(Click Olayı) Textbox'ın içindeki veriyi alıp Label'ın Text'ine atıyor.Yani görünen kısmına atıyor.
30 Kasım 2012 Cuma
C# Basit Kdv Programı
Merhaba arkadaşlar.Bugün C#'ta combobox,textbox,label ve button kullanarak basit bir fiyat hesaplayıcı programı yapacağız.Öncelikle aşağıdaki formu hazırlayalım.
Yapmak istediğimiz şey butona bastığımızda girilen fiyatı adet ve kdv oranıyla çarpıp ödenecek tutar kısmına sonucu yazması.Butona bastığımızda işlem yapılacağı için butonun click olayına kodları yazmamız gerekiyor ama kdv oranlarının form açıldığı anda combobox'a yüklenmesini sağlamak için form'un load kısmına da bi kaç kod yazmamız gerekiyor.Form'da herhangi bir boş yere çift tıklayıp form'un load kısmına gelip aşağıdaki kodları yazalım.
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("8");
comboBox1.Items.Add("18");
comboBox1.Items.Add("25");
}
Bu kodu eklediğimizde form açıldığı anda combobox'ın içerisini belirlediğimiz kdv oranlarıyla doldurmuş oluyoruz.Bu işlemi manual olarakta yapabiliriz.Combobox seçiliyken properties pencerisinde items özelliğine tıklayarak oraya direkt kdv oranlarını ekleyebiliriz.Bunları yaptıktan sonra artık asıl işi yapacak kodumuzu butonun içerisine yazıyoruz.
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = Convert.ToString((Convert.ToDouble(textBox1.Text) + ((Convert.ToDouble(textBox1.Text) * Convert.ToInt32(comboBox1.SelectedItem)) / 100)) * Convert.ToInt32(textBox2.Text));
}
Bu kodu yazdığımızda olan olay şu:
Textboxlar string tipinde değer tutarlar.Bu yüzden textboxların içerisine direkt olarak sayısal değer atayamayız yani double,int gibi.Öncelikle textbox'ın içindekini convert etmemiz gerekir.Eğer ondalıklı bir sayı tutacaksak convert.todouble ifadesini kullanırız.Eğer ondalıklı olmayan bir sayı tutacaksak convert.toint32 işimizi görür.
Dikkat ederseniz textboxlarımızı comboboxları hep convert ederek işlem yaptık.Çünkü öbür türlü işlem sonucu alamayız sadece string olarak toplamış olursunuz.Buda bizim işimize şuan yaramaz.
Combobox içerisindeki değeri combobox.text olarakta alabiliriz.Ama ileride bu yöntem bize lazım olacağı için combobox1.selecteditem olarak aldık.
En sonda bütün işlemlerin sonucunu textbox'a yazmak için convert.tostring özelliğini kullanmamız gerekiyor çünkü Textbox sadece string değer alıyordu hatırlarsanız.Biz bütün işlemleri sayısal olarak yaptıktan sonra string'e çevirip atmamız gerekiyor.Textbox3.text bizim sonucumuzun görünecek kısmı.
Yaptığımız işlem ise şu
( girilenpara+ ( ( girilenpara * kdvoranı) / 100 ) ) * adet sonucu git Textbox3.text'e yaz.
girilenpara=Texbox1.text
kdvoranı=Combobox1.selecteditem veya Combobox1.text
adet=Textbox2.text
Girilen tüm bilgileri convert ederek işlem yaptık ve sonucunu bir textbox'a yazdırdık.
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("8");
comboBox1.Items.Add("18");
comboBox1.Items.Add("25");
}
Bu kodu eklediğimizde form açıldığı anda combobox'ın içerisini belirlediğimiz kdv oranlarıyla doldurmuş oluyoruz.Bu işlemi manual olarakta yapabiliriz.Combobox seçiliyken properties pencerisinde items özelliğine tıklayarak oraya direkt kdv oranlarını ekleyebiliriz.Bunları yaptıktan sonra artık asıl işi yapacak kodumuzu butonun içerisine yazıyoruz.
private void button1_Click(object sender, EventArgs e)
{
textBox3.Text = Convert.ToString((Convert.ToDouble(textBox1.Text) + ((Convert.ToDouble(textBox1.Text) * Convert.ToInt32(comboBox1.SelectedItem)) / 100)) * Convert.ToInt32(textBox2.Text));
}
Bu kodu yazdığımızda olan olay şu:
Textboxlar string tipinde değer tutarlar.Bu yüzden textboxların içerisine direkt olarak sayısal değer atayamayız yani double,int gibi.Öncelikle textbox'ın içindekini convert etmemiz gerekir.Eğer ondalıklı bir sayı tutacaksak convert.todouble ifadesini kullanırız.Eğer ondalıklı olmayan bir sayı tutacaksak convert.toint32 işimizi görür.
Dikkat ederseniz textboxlarımızı comboboxları hep convert ederek işlem yaptık.Çünkü öbür türlü işlem sonucu alamayız sadece string olarak toplamış olursunuz.Buda bizim işimize şuan yaramaz.
Combobox içerisindeki değeri combobox.text olarakta alabiliriz.Ama ileride bu yöntem bize lazım olacağı için combobox1.selecteditem olarak aldık.
En sonda bütün işlemlerin sonucunu textbox'a yazmak için convert.tostring özelliğini kullanmamız gerekiyor çünkü Textbox sadece string değer alıyordu hatırlarsanız.Biz bütün işlemleri sayısal olarak yaptıktan sonra string'e çevirip atmamız gerekiyor.Textbox3.text bizim sonucumuzun görünecek kısmı.
Yaptığımız işlem ise şu
( girilenpara+ ( ( girilenpara * kdvoranı) / 100 ) ) * adet sonucu git Textbox3.text'e yaz.
girilenpara=Texbox1.text
kdvoranı=Combobox1.selecteditem veya Combobox1.text
adet=Textbox2.text
Girilen tüm bilgileri convert ederek işlem yaptık ve sonucunu bir textbox'a yazdırdık.
Eğer aklınıza takılan bir yer varsa lütfen sorun iyi akşamlar.
c# İçin For Döngüsü
C# For Döngüsü
C#'ta döngü kullanımları bir çok işimizi kolay hale getirir.Bir döngü kurarak normalde yazmamız gereken bir çok satırı, kurduğumuz döngü sayesinde bir kaç satırla yazabiliriz.Ayrıca döngülerle kontrol işlemleri de yapabiliriz.Yani anlayacağınız döngüler tüm programlama dillerinin vazgeçilmez bir parçasıdır.Bugün döngü tiplerinden For döngüsünü anlatmaya çalışacağım.
For döngüsü en çok kullanılan döngü tiplerinden biridir.
1)
int sayac=0;
for( int i=0 ; i<=10 ; i++ )
{
sayac++;
}
Burada for döngüsü içinde 1.blokta "i" değişkeni tanımlanmıştır.Başlangıç değeri olarak 0 atanmıştır.Yani i değişkeni 0 dan başlayacaktır.2. blokta for döngüsünün koşulu belirlenmiştir.Yani i değişkeni 10 dan küçük olduğu sürece bu döngünün devam edeceği belirtilmiştir. 3. blokta ise i değişkenin artış miktarı belirtilmiştir.Yani döngü her bir dönüşünde i değerinin 1 artacağını belirtmiş oluyoruz.
Döngü ilk çalıştığında i değişkenine 0 atıyor.Daha sonra gelip 10 dan küçük olup olmadığına bakıyor.10 dan küçük olduğu için sayac değişkenini 1 arttırıyor.sayac değişkenini arttırdıktan sonra for döngüsünün 3 bloğuna geliyor döngü ve i değişkenini yine 1 arttırıyor.Sonra 2 bloğa gelip yine 10 dan küçük olup olmadığını kontrol ediyor.Bu şekilde döngü i değişkeni 10 olana kadar bu işlemler her defasında tekrar tekrar gerçekleşiyor.Bu işlem her tekrar ettiğinde sayac değişkeni 1 arttıyor ve son olarak 10 oluyor ve döngü bitiyor.For döngüsü devam ettiği sürece süslü paratezler arasındaki bütün işlemleri teker teker gerçekleştirir.
2)
int sayac=0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
sayac++;
}
}
textBox1.Text = ikinci.ToString();
Bu kısımda iç içe for döngüleri kullanılmıştır.İlk döngü bir kere çalıştıktan sonra alttaki döngüye geçer ve bu döngünün koşulunu sağlayana kadar döngü devam eder.Alttaki döngünün koşulu tamamlandıktan sonra ilk döngüye geri döner.Eğer koşul hala sağlanmamışsa alttaki döngü tekrar çalışır.Bu şekilde döngüler koşullar sağlanana kadar devam eder.Yaptığımız bu örnekte bu kod satırları tam 100 defa çalışır.Gördüğünüz gibi bir kaç satırda 100 defalık bir işlem yapmış olduk.Döngüden çıktıktan sonra sayac değişkeninin değeri Textbox'a 100 olarak basılır.Birden fazla döngüyü iç içe alabiliriz.Bu bizim yapacağımız yazılma göre şekillenir.
Bundan sonraki konum yine döngüler olacak.For ve diğer döngüler ile ilgili örnekler ve açıklamalar yapmaya devam edeceğim.
C#'ta döngü kullanımları bir çok işimizi kolay hale getirir.Bir döngü kurarak normalde yazmamız gereken bir çok satırı, kurduğumuz döngü sayesinde bir kaç satırla yazabiliriz.Ayrıca döngülerle kontrol işlemleri de yapabiliriz.Yani anlayacağınız döngüler tüm programlama dillerinin vazgeçilmez bir parçasıdır.Bugün döngü tiplerinden For döngüsünü anlatmaya çalışacağım.
For döngüsü en çok kullanılan döngü tiplerinden biridir.
1)
int sayac=0;
for( int i=0 ; i<=10 ; i++ )
{
sayac++;
}
Burada for döngüsü içinde 1.blokta "i" değişkeni tanımlanmıştır.Başlangıç değeri olarak 0 atanmıştır.Yani i değişkeni 0 dan başlayacaktır.2. blokta for döngüsünün koşulu belirlenmiştir.Yani i değişkeni 10 dan küçük olduğu sürece bu döngünün devam edeceği belirtilmiştir. 3. blokta ise i değişkenin artış miktarı belirtilmiştir.Yani döngü her bir dönüşünde i değerinin 1 artacağını belirtmiş oluyoruz.
Döngü ilk çalıştığında i değişkenine 0 atıyor.Daha sonra gelip 10 dan küçük olup olmadığına bakıyor.10 dan küçük olduğu için sayac değişkenini 1 arttırıyor.sayac değişkenini arttırdıktan sonra for döngüsünün 3 bloğuna geliyor döngü ve i değişkenini yine 1 arttırıyor.Sonra 2 bloğa gelip yine 10 dan küçük olup olmadığını kontrol ediyor.Bu şekilde döngü i değişkeni 10 olana kadar bu işlemler her defasında tekrar tekrar gerçekleşiyor.Bu işlem her tekrar ettiğinde sayac değişkeni 1 arttıyor ve son olarak 10 oluyor ve döngü bitiyor.For döngüsü devam ettiği sürece süslü paratezler arasındaki bütün işlemleri teker teker gerçekleştirir.
2)
int sayac=0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
sayac++;
}
}
textBox1.Text = ikinci.ToString();
Bu kısımda iç içe for döngüleri kullanılmıştır.İlk döngü bir kere çalıştıktan sonra alttaki döngüye geçer ve bu döngünün koşulunu sağlayana kadar döngü devam eder.Alttaki döngünün koşulu tamamlandıktan sonra ilk döngüye geri döner.Eğer koşul hala sağlanmamışsa alttaki döngü tekrar çalışır.Bu şekilde döngüler koşullar sağlanana kadar devam eder.Yaptığımız bu örnekte bu kod satırları tam 100 defa çalışır.Gördüğünüz gibi bir kaç satırda 100 defalık bir işlem yapmış olduk.Döngüden çıktıktan sonra sayac değişkeninin değeri Textbox'a 100 olarak basılır.Birden fazla döngüyü iç içe alabiliriz.Bu bizim yapacağımız yazılma göre şekillenir.
Bundan sonraki konum yine döngüler olacak.For ve diğer döngüler ile ilgili örnekler ve açıklamalar yapmaya devam edeceğim.
c# Dilinde Özellikler
Evet ilk makalemizle karşınızdayız ;
Nesne yönelimli programlamanın günümüzde ne kadar yaygın olduğunu
programlama ile ilgilenen herkes bilmektedir. Nesne Yönelimli Programlama (NYP)
yaklaşımında temel olan prensiplerden birisi bilgi gizleme (information
hiding)'dir. Bu prensibi projelerimizde uygulamak için C#'in sunduğu en önemli
araçlardan biri olan sınıf özellikleri (class properties) konusunu inceleyeceğiz.
Bildiğiniz gibi, C# dilinde tasarlanmış bir sınıfta iki temel unsur
bulunur. Birincisi sınıfın özellikleri (fields), ikinicisi ise sınıfın
metodlari (methods)'dır. Herhangi bir sınıfın özellikeri sınıfta tutulan ilişikili
verilerlerdir. Diğer taraftan sınıfın bizim için değişik işleri yapmasını
metodları vasıtasıyla sağlarız. Sınıf tasarımı çok önemli bir iş olup; deneyim,
konsantrasyon ve dikkat ister. Sınıfımızın özelliklerini tutan veriler, program
akışı sırasında sınıf dışında değiştirilebilir veya bu değerlere ulaşmak
istenebilir.
Bu durumda akla ilk gelen çözüm sınıfın verilerinin hepsinin dışarıdan
ulaşilabilmesini ve değiştirilebilmesine olanak sağlayan public anahtari ile
tanımlamakdir. Aşağıdaki programda bu tür bir çözümün uygun olabileceği düşünülmüştür:
using System;
namespace Property_Makale
{
class Otomobil
{
public int model;
public string marka;
public string renk;
{
class Otomobil
{
public int model;
public string marka;
public string renk;
public Otomobil(int model, string marka, string renk)
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
this.renk=renk;
}
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
this.renk=renk;
}
public void OzellikleriGoster()
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
}
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
}
class OtomobilTest
{
static void Main(string[] args)
{
Otomobil oto1 = new Otomobil(2000, "BMW" , "Siyah");
oto1.OzellikleriGoster();
{
static void Main(string[] args)
{
Otomobil oto1 = new Otomobil(2000, "BMW" , "Siyah");
oto1.OzellikleriGoster();
oto1.model=300;
oto1.OzellikleriGoster();
}
}
}
}
}
}
Yukarıdaki kod örneğimizde iki tane sınıf bulunmaktadır. Otomobil sınıfı ile otomobil nesnelerimizi oluşturabiliriz.
Ayrıca bu sınıfın OzellikleriGoster() metodu
ile herhangi bir otomobil nesnemizin özelliklerini görmek için ekrarana yazdırıyoruz.
İkinci sınıfımızda (OtomobilTest) ise Otomobil
sınıfımızdan nesneler oluşturmak ve onların özellikerini çağırmak için
kullanacağız. Şimdi isterseniz Main() fonksiyonunu incelemeye başlayalım.
Metodun hemen ilk başında oto1 isimli nesnemizi oluşturuyoruz. oto1 nesnemizin
özellikleri 2000 model, siyah ve BMW olsun. Bir sonraki satırda oto1 nesnemizin
modelini 300 yapıyoruz. İşte burda büyük bir hata yapılıyor! Çünkü 300 yılında
henüz otomobil üretilmemişti. Böyle bir hatayı nasıl önleriz? Çözüm olarak
otomobil nesnemizin herhangi bir özelliğini değiştirmek için ayrı bir metod
yazmamız gerekir. O zaman programızı şu şekilde değiştirmemiz gerekiyor:
using System;
namespace Property_Makale
{
class Otomobil
{
private int model;
public string marka;
public string renk;
{
class Otomobil
{
private int model;
public string marka;
public string renk;
public Otomobil(int model, string marka, string renk)
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
this.renk=renk;
}
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
this.renk=renk;
}
public void OzellikleriGoster()
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
public void ModelDegistir(int yeniModel)
{
if( (yeniModel>DateTime.Now.Year)||(yeniModel<1900) )
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! ");
else this.model=yeniModel;
}
}
{
if( (yeniModel>DateTime.Now.Year)||(yeniModel<1900) )
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! ");
else this.model=yeniModel;
}
}
class OtomobilTest
{
static void Main(string[] args)
{
Otomobil oto1 = new Otomobil(2000, "BMW" , "Siyah");
oto1.OzellikleriGoster();
{
static void Main(string[] args)
{
Otomobil oto1 = new Otomobil(2000, "BMW" , "Siyah");
oto1.OzellikleriGoster();
oto1.ModelDegistir(300);
oto1.OzellikleriGoster();
}
}
}
oto1.OzellikleriGoster();
}
}
}
Yukarıdaki programda Otomobil sınıfına ModelDegistir(int
yeniModel) metodunu ekledik. Bu metod ile modeli değiştirilecek nesnenin
modelinin şu anda bulunulan yıldan sonra ve 1900'den önce yapılmak istendiğinde
hata mesajı veriyor ve modelini değiştirmiyor. Ayrıca sınıf içindeki model değişkenin
tanımlanmasında private anahtarını da kullandığımıza dikkat ediniz. Bu şekildeki
bir yaklaşım ile hem sınıfın iç işleyişini sınıf dışından saklamış oluyoruz hem
de sınıfa ait verilerin değiştirilmesini sırasındaki hataları en az seviyede
tutmayı sağlıyoruz.
Fakat yukarıdaki yöntemi genelde C++ programcıları kullanır(dı). Bizler
C# programcıları olarak daha gelişmiş bir yola sahibiz. Sınıf içindeki değerleri
değiştirmek ve ulaşmak için özellik (Property) aracını kullanırız. Aşağıdaki
program ise C#'ın özellikleri nasıl kullandığına bir örnektir:
using System;
namespace Property_Makale
{
class Otomobil
{
private int model;
public string marka;
public string renk;
{
class Otomobil
{
private int model;
public string marka;
public string renk;
public Otomobil(int model, string marka, string renk)
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
{
if(model>DateTime.Now.Year)
this.model=DateTime.Now.Year;
else this.model=model;
this.marka=marka;
this.renk=renk;
}
}
public void OzellikleriGoster()
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
{
Console.WriteLine("\nOtomobilimizin Özellikleri: ");
Console.WriteLine("\t Marka: "+ marka);
Console.WriteLine("\t Model: "+ model);
Console.WriteLine("\t Renk: "+ renk+"\n" );
}
public int Model
{
get
{
return model ;
}
{
get
{
return model ;
}
set
{
if((value>DateTime.Now.Year)||(value<1900) )
{
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! \n");
}
else this.model=value;
}
}
}
{
if((value>DateTime.Now.Year)||(value<1900) )
{
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! \n");
}
else this.model=value;
}
}
}
class OtomobilTest
{
static void Main(string[] args)
{
Otomobil oto = new Otomobil(2000, "BMW" , "Siyah");
Console.WriteLine("Otomobilimizin modeli: "+ oto.Model);
{
static void Main(string[] args)
{
Otomobil oto = new Otomobil(2000, "BMW" , "Siyah");
Console.WriteLine("Otomobilimizin modeli: "+ oto.Model);
oto.Model=300;
oto.OzellikleriGoster();
}
}
}
oto.OzellikleriGoster();
}
}
}
Çıktısını gördüğünüz program kodunda C#'ın özellik tanımlama ve kullanma
yöntemini kullandık. Özellikler ile herhangi bir nesneye ait değişkenin değerini
öğrenebilir ve değiştirebiliriz. Yukarıdaki örnek kodda yeralan aşağıdaki kısımda
bir özellik(Property) tanımlıyoruz. Genellikle bir özelliğin ismi üzerinde iş
yaptığı değişkenin ismi ile aynı olup sadece ilk harfi büyük olur. Aslında bu
bir zorunluluk değil. Sadece C#'da bu bir gelenektir. Bu şekilde bir kullanım
bizim kodumuzu okuyanların kodu daha kolay anlaması ve bizim başkalarının
kodlarını daha kolay anlamamıza yardımcı olur. Bir özelliğin tanımında özellik
isminden önce ne tür bir değer dönderecekse onun tipini belirtmeliyiz. Bu
genelde özelliğin ilgili olduğu değişkenin tipidir
public int Model
{
get
{
return model ;
}
{
get
{
return model ;
}
set
{
if((value>DateTime.Now.Year)||(value<1900) )
{
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! \n");
}
else this.model=value;
}
}
}
{
if((value>DateTime.Now.Year)||(value<1900) )
{
Console.WriteLine("Otomobilin modeli su an ki yildan büyük veya 1900'den küçük olamaz ! \n");
}
else this.model=value;
}
}
}
Özellikler içinde get ve set olmak üzere iki ayrı blok kod olur. İstersek
sadece get veya sadece set blokları olan özellikler de yazabiliriz. get bloğunda
ilgili değişkenimizin değerini dışarıya döndeririz. set bloğunda ise değişkenimizin
değerini değiştiririz. Burda gereken kontrolleri yapıp daha sonra uygunsa
girilen değeri kabul edebiliriz. Eminimki get bloğu içinde dikkattinizi değişkeni
ismi yerine value şeklinde çağırmamız çekmiştir.
Bu sayede kod içinde karışıklık olmaz. Zaten sadece bir tane değişken üzerinde
çalışıyorsunuz.
Bu makalemizde C# dilinde yeralan özellik (Property) kavramını
inceledik.Bir sonraki makalemizde görüşmek üzere.
Kaydol:
Kayıtlar (Atom)