16 Eylül 2007 Pazar

Struct (Daha Yakından)

Özellikleri:

1. Değer Tipidirler.

2. Fieldlarını direkt olarak örnekleyemezsiniz. Aşağıdaki örnekte x field'ına 0 değerini atayarak ilklendirme yapmak istedim. Kodu derlediğimde(ctrl+shift+b) "Error 1 'StruckOzellikleri.Nokta.x': cannot have instance field initializers" hatası ile karşılaştım.


3. Struct'lar default bir "yapıcı method"(contructor) a sahiptirler.

4. Eğer Struct içerisnde yapıcı method kullanılması gerekiyorsa, yapıcı methodun parametre alma zorunluluğu vardır. Diğer durumlarda hata ile karşılaşırız.(Not:Yapıcı method konusunu daha sonra göreceğiz.)

5. Struct'ların örneğini oluşturmak için new anahtar kelimesi kullanılır.



6. Struct'ların örneğini oluşturmak için class'lar gibi new anahtar kelimesini kullanma zorunluluğu yoktur.


7. Class'ları miras alamazlar(inheritance) fakat interface'leri implement edebilirler.

1 yorum:

Dreamade dedi ki...

Öncelikle bilgilerinizi bir çaba gösterip bizlerle paylaştığınız için teşekkür ederim.Elinize sağlık.

Benim ufak bir tavsiyem var.Bildiğiniz gibi struct'larda kendi metodlarına sahip olabiliyor ve classların yaptığı şeylerin bir kısmını ondan daha yüksek bir verim ile yapabiliyor.Bazı yerlerde ise Class'lar çok daha büyük faydalar sağlayabiliyor.

Kısacası gördüğüm pek çok kodda ve türkçe makalede class ile struct arasındaki ilişkilerin biraz eksik anlatıldığını düşünüyorum.Hangisini nerede kullanacağımızla ilgili bilgiler biraz eksik anlatılıyor?Bu sebeple programların performansı ciddi düzeyde azalabiliyor.

İkisi arasında karşılaştırmaları , ve üstte bahsettiğim konuları anlatan da bir makale yazarsanız çok faydalı olabileceği kanaatindeyim.