- struct nedir
- struct bildirimi nasıl yapılır
- new anahtarı kullanımı
struct nedir
struct türkçeye çevirdiğimiz vakit kelime karşılığı olarak yapı anlamına gelmektedir. Bizde konunun devamında yapı kelimesini kullanacağız. Yapı dediğimiz bu kavram c# içinde bir nesneyi temsil eden veri tipidir.örneğin sayısal bir tip olan int,short,byte vs.. birer yapıdır. Yapılar birer nesne olduğu için belli özelliklere sahiptirler bu özellik dışında alan (field-degişken) ve metotlara(yöntem-iş-parçası)sahip olabilirler.Claslara çok benzemesine karşın aralarında bariz farklar vardır yapılar değer tiplidir,classlar ise reference tiplerdir.Bu konuya buradan göz atabilirsiniz.Değer tipleri bellekte stack alanında iken reference tip olan classlar heap(öbekte) tutulurlar.Classlar new anahtar kelimesi ile yaşam bulup belleğe çıkarlar.yapılar ise iki kullanımada açıktır
struct bildirimi nasıl yapılır
yapıları oluşturuken sınıf bildiriminden farklı bir şeyler yapmayız.Class kelimesi yerine struct kullanılır,ayrıca bir class içinde oluşabilir yada terside mümkündür bir yapı içinde classta olabilir fakat bir metot içinde yapı oluşturamazsınız.
{
// kod bloğumuz burada özellik,degişken ,metot tanımlayabileceğimiz yapı bileşenleri..
}
şimdi bu tanıma ait küçük bir kod bloğunu aşağıda gösterelim
public struct kitaplar
{
public string kitapAdi;
public int kitapFiyati;
}
yapıları programımızın kodu içinde kullanmayı görelim
new anahtarı ile yapı kullanımı
new c# de bellekte yeni bir nesne oluşurmak için kullanılan deyimdir.Burada nesnemiz yapı olacağı için stackte yeni bir nesne ortaya çıkacaktır, yukarıda oluşturduğumuz yapıyı Form1_load eventinde gözlemleyelim
private void Form1_Load(object sender, EventArgs e)
{
kitaplar yenikitap=new kitaplar();
yenikitap.kitapAdi = "Hayat Güzeldir";
yenikitap.kitapFiyati = 32;
}
Bir yapıyı new olmadanda kullanabiliriz
private void Form1_Load(object sender, EventArgs e)
{
kitaplar yenikitap;
yenikitap.kitapAdi = "Hayat Güzeldir";
yenikitap.kitapFiyati = 32;
}
bu şekildeki kullanımdada yenikitap değişkenini yazıp noktaya(.) basarsanız kitap nesnemizin fieldlerine ulaşabildiğimizi görürüz peki new kullanımı ne fark yaratıyor,
farkı şu ki new ile kullanınca yenikitap.kitapAdi=null değerini yenikitap.kitapFiyati =0; değerini otomatik olarak almış olur.kodumuzu aşağıdaki şekle getirelim
private void Form1_Load(object sender, EventArgs e)
{
kitaplar yenikitap= new kitaplar();
this.Text = yenikitap.kitapAdi;
}
formun başlığı boş gelecektir.eğer new anahtar kelimesini kullanmadan yazmaya kalkışırsak bu sefer değişkenlere ulaşabilsekte başlangıç değeri vermediğimiz için hata almış olacagız.sınıflar new anahtarı olmadan belleğe çıkamazlar new ile sınıf üyeleri varsayılan değerlerini alırlar yapılar ise new yoksa üyelerine ulaşabilsekte başlangıç değeri atanma zorunluluğu vardır. bir sonraki yazıda görüşmek dileğiyle..
Hiç yorum yok:
Yorum Gönder