Struct Nedir ve Hangi Durumlarda Kullanılır?

Cenker Kumlucalı
2 min readSep 2, 2023

--

Structlar, C# programlama dilinin Value type olarak adlandırılan veri yapılarından biridir. Structlar genellikle küçük boyutlu ve hafif veriler oluşturmak için kullanılır, ancak performans ve maliyet optimizasyonları açısından da tercih edilebilirler.

Struct Nedir?

Structlar, değer türü olarak adlandırılan veri yapılarının bir örneğidir. Classlar gibi struct da properties ve methods içerebilir. Ancak, structlar değer türü olduğu için belleğin Stack kısmında tutulurlar. Bu, structların daha hafif ve hızlı bir şekilde erişilebilir olduğu anlamına gelir.

Structlar genellikle basit veri türlerini temsil etmek için kullanılır. Örneğin, matematiksel veriler (koordinatlar, noktalar), zaman bilgileri (saat, dakika, saniye) gibi veriler struct olarak tanımlanabilir. Structlar, kalıtımı desteklemez ve interface’leri implement edebilirler.

Struct mı, Class mı?

- Structların kullanımı, performans ve bellek optimizasyonlarına odaklanan durumlarda tercih edilir. İşte structları classlardan ayıran bazı özellikler ve durumlar:

-Structlar Value type olduğu için Stack’te bellekte tutulurlar ve daha az bellek kullanırlar. Classlar ise Reference type olduğu için referansları Stack’te, instance’ı ise Heap’te bellekte tutulurlar.

-Structlar sadece interface’leri implement edebilirken, classlar kalıtımsal davranışı destekler. Eğer tipin sadece özellikleri ve davranışları varsa (kalıtım ihtiyacı yoksa), struct kullanmak mantıklı olabilir.

-Structlar varsayılan olarak nullable değillerdir, yani null olamazlar. Classlar ise varsayılan olarak nullable türlerdir ve null olabilirler.

-Structlar daha hafif ve performans odaklıdır. İnce ve basit veri yapıları için struct kullanmak, daha hızlı erişim ve daha az bellek tüketimi sağlar. Ancak, büyük struct veriler performans sorunlarına yol açabilir.

-Structlar içinde static memberları barındırabilirken, classlar içinde değişkenler ve metotlar bulunabilir.

-Eğer bir sınıfın tüm memberları Value type ise (örneğin, sadece özellikler ve field’lar var), o zaman bir struct tasarlamak daha uygun olabilir. Ancak, classlarda daha fazla özellik ve işlevsellik gerekiyorsa class kullanmak daha doğru olabilir.

Özet

Bu makalede, Structların ne olduğunu ve hangi durumlarda kullanılabileceğini ele aldık. Structlar, hafif ve performans odaklı veri yapılarıdır ve genellikle basit verileri temsil etmek için tercih edilirler. Classlar ise daha fazla özellik ve işlevsellik gerektiren durumlarda tercih edilebilir. Doğru seçimi yapmak için struct ve class arasındaki farkları ve ihtiyaçlarınızı göz önünde bulundurmanız önemlidir.

--

--

No responses yet