में एक संरचना का अतिरिक्त आकार देता है मैं आकार के ऑपरेटर का उपयोग कर अपने सभी चर (मान प्रकार) का आकार जांचने की कोशिश कर रहा हूं। मैं msdn article में से एक है, जहां यह लिखा है किआकार का ऑपरेटर सी #
structs सहित अन्य सभी प्रकार के लिए,, sizeof ऑपरेटर केवल असुरक्षित कोड ब्लॉक
और भी structs किसी भी शामिल नहीं होना चाहिए में इस्तेमाल किया जा सकता के माध्यम से चला खेतों या गुण है कि संदर्भ प्रकार के होते हैं
इस के लिए, मैं इस प्रकार
struct EmployeeStruct
{
int empId;
long salary;
}
के रूप में अपने प्रोजेक्ट गुण में असुरक्षित संकलन और बनाया संरचना सक्षम 10
और इस प्रकार
unsafe
{
size = sizeof(EmployeeStruct);
}
Console.WriteLine("Size of type in bytes is: {0}", size);
रूप में इस्तेमाल किया यहाँ मैं बाइट में प्रकार के आकार के रूप में उत्पादन कर रहा है हो रही है: 16 तथापि संरचना को देखकर यह होना चाहिए 12 (पूर्णांक के लिए 4 और 8 लंबे समय के लिए)। क्या कोई मुझे यहां समझने में मदद कर सकता है कि मुझे 4 बाइट अतिरिक्त आकार क्यों मिल रहा है?
आपके द्वारा दिए गए लिंक से आपको पता चलता है: "जबकि आकार सामान्य आकार के रनटाइम द्वारा आवंटित किया गया है, ** ** किसी भी पैडिंग ** ** – DavidG
@ यूजीन पॉडस्कल में यह बहुत कुछ बदलता है - जो लोग उत्तर की तलाश में हैं सी # पर एक समस्या सी के बारे में प्रश्नों को नहीं देखेगी, वे बहुत अलग भाषाएं हैं, भले ही जवाब वही है। –
@GediminasMasaitis फिर उन्हें यह प्रश्न मिलेगा और डुप्लिकेट पढ़ा जाएगा (ठीक है, कम से कम उन्हें चाहिए)। लेकिन अगर आपको लगता है कि यह प्रयास के लायक है, तो आप उचित कैननिकल सी #-विशिष्ट उत्तर लिख सकते हैं। उस स्थिति में मैं आपको इस प्रश्न का नाम अधिक आसानी से खोजने योग्य और टू-द-पॉइंट "आकार से अधिक रिटर्न मान का आकार बदलने के लिए" या उस पंक्ति के साथ कुछ नाम बदलने की भी सिफारिश करता हूं। डेविड जी टिप्पणी के लिए –