Sizeof operatörünü kullanarak tüm değişkenlerimin büyüklüğünü (değer türleri) kontrol etmeye çalışıyorum. Ben yapılar da dahil olmak üzere tüm diğer türleri içinsizeof operatörü bir yapı içinde ekstra boyut verir C#
ve ayrıca yapılar herhangi içermemelidir kullanılabilir yazılıdır msdn article biri aracılığıyla gitmiş alanlar veya referans tipleridir Bunun için, sizeof operatörü sadece güvensiz kod blokları
özellikleri, ben AŞAĞIDAKİ
struct EmployeeStruct
{
int empId;
long salary;
}
olarak benim proje özelliklerinde güvensiz derleme ve oluşturulan yapıyı etkin 10
ve
unsafe
{
size = sizeof(EmployeeStruct);
}
Console.WriteLine("Size of type in bytes is: {0}", size);
aşağıdaki- olarak kullandı İşte byte olarak Çeşidi Boyut gibi çıkışını edilir alıyorum: 16 ancak yapının bakarak o 12 (uzun süre int için 4 ve 8) olmalıdır. Birisi bana neden 4 bayt ekstra boyut aldığımı anlamanıza yardımcı olabilir mi?
Verdiğiniz bağlantı size şunları söyler: "sizeof, dilbilgisi çalışma zamanı tarafından tahsis edildiği şekliyle boyutu döndürürken, ** herhangi bir dolgu ** dahil olmak üzere **" – DavidG
@EugenePodskal Çok şey değiştirir - yanıt arayan kişiler C# 'daki bir problem C ile ilgili sorulara bakmaz, cevaplar aynı olsa bile çok farklı dillerdir. –
@GediminasMasaitis Daha sonra bu soruyu bulabilir ve kopyasını okuyacaklar (en azından en azından olmalılar). Ama bu çabaya değer olduğunu düşünüyorsanız, o zaman uygun bir kurallı C# -belirli cevap yazabilirsiniz. Bu durumda, soruyu daha kolay aranabilir ve noktaya "beklenen değerden daha büyük olan geri döndürme değeri" veya bu satırdaki bir şey olarak yeniden adlandırmanızı tavsiye ederim. –