C# Struct ve Class farkı nedir?

AhmetBirkan

Hectopat
Katılım
24 Temmuz 2020
Mesajlar
759
Çözümler
2
Struct ve Class farkını oturtamadım. Tavsiyeniz var mı?

Edit: Değer ve Referans tipini biliyorum. Ama nerede Struct nerede Class kullanmalıyım bunu çözemedim. Mesela Enum mu kullanmalıyım Switch case mi diye düşününce hemen nerede hangisini kullanmam gerektiğini çözüyorum ama Struct ile Class için bu ayrımı yapamıyorum.
 
Sıradan yazılımcı olmak istemediğim için Struct olayını çözmek istiyorum. İkisinin kullanım alanıyla alakalı kısa örnek verme şansınız var mı?
Struct değer-tipi (value type), Class referans-tipi (reference type).
İngilizce biliyorsanız bir sürü kaynak var internette. Bilmiyorsanız da öğrenin, İngilizce bilmemek bir seçenek değil bence özellikle yazılımcı olmak isteyen birisin için.
 
Struct değer-tipi (value type), Class referans-tipi (reference type).
İngilizce biliyorsanız bir sürü kaynak var internette. Bilmiyorsanız da öğrenin, İngilizce bilmemek bir seçenek değil bence özellikle yazılımcı olmak isteyen birisin için.
İnternetten sanırım 8 9 kaynak okudum ama oturtamadım. Sadece şunu merak ediyorum Struct nerede Class nerede kullanılır kült bir örnek yok mu?
 
İnternetten sanırım 8 9 kaynak okudum ama oturtamadım. Sadece şunu merak ediyorum Struct nerede Class nerede kullanılır kült bir örnek yok mu?
İngilizce kaynak.

Lakin kesin çizgi yok bu tür konularda. O kadar kafanı yormanı tavsiye etmem. Zaman-kritik işlerle uğraşmıyorsan çok da bir önemi yok böyle küçük optimizasyonların. Önemli olan oluşturulan obje kodu. Sen struct mı class mı diye düşünürken ikisi de aynı obje koduna derleniyor olabilir.
 
Struct da Class da bir nesnedir. Aynı işi yaparlar. Sıradan bir yazılımcı olmamak için bu kadar ufak şeyler yerine algoritmik düşünce yapınızı geliştirmeniz gerekir. Bu kadar ufak şeylere takılmayın.

Bir veriyi aktarmak için nesne kullanırsınız, bu kadar basit. İkisinin de kullanım alanı aynı.

Struct kullanırken kalıtım (inheritance) yapamazsınız. Bundan da büyük bir farkları yok. Birbirleri içinde kullanılabilirler. Struct yerine her durumda Class kullanılır ama Class yerine her durumda Struct kullanılmaz.

Muhtemelen C# geliştirilirken Struct yerine bir sürümde Class geldi ama eski sürümlerin desteği kalkmasın diye kaldırmadılar. Ben bu şekilde düşünüyorum.
 
Merhaba, struct ve class için benchmark testleri var, aradaki performans farkını incelemeni öneririm. Nesnenin scope ömrü kısa ve boyutu 16 byte altında ise seçimin struct olabilir ama optimizasyon ile ilgili projende ciddi gereklilikler yok ise class kullanman çok bir etki yansıtmayacaktır.
 

Yeni konular

Geri
Yukarı