c# - Size of structure -
मार्शल। आकार ओफ़ (टाइपफ (माइक्रस्ट्रक्ट) का उपयोग कर संरचना का आकार प्राप्त करना संभव है ));
क्या संरचना के एक हिस्से का आकार प्राप्त करना संभव है (उदाहरण के लिए मैं एक संरचना का अंतिम क्षेत्र कार्य करने के लिए पास करता हूं और यह पिछले क्षेत्रों के आकारों की राशि देता है)? जैसा कि मैंने समझ लिया है कि प्रतिबिंब का उपयोग करना संभव है?
[स्ट्रक्चर लेआउट (लेआउटकिंड। एक्स्प्लिक्ट)] सार्वजनिक स्ट्रिंग कुछ स्ट्रीट {[फील्ड ऑफसेट (0)] सार्वजनिक बाइट बी 1; [फील्ड ऑफसेट (3)] सार्वजनिक बाइट बी 2; [फील्ड ऑफसेट (7)] सार्वजनिक आईआईटी I1; [फील्ड ऑफसेट (12)] सार्वजनिक आईटी i2; } क्लास प्रोग्राम {स्टैटिक फील्डऑफसेट ऍट्रिब्यूट GetFieldOffset (स्ट्रिंग फ़ील्डनाम) {रिटर्न (फ़ील्ड ऑफ़सेट एट्रिब्यूट) टाइपफ (कुछ स्ट्रीट) .GetField (fieldName) .GetCustomAttributes (typeof (FieldOffsetAttribute), गलत) [0]; } स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {var someStruct = नया SomeStruct {b1 = 1, b2 = 2, i1 = 3, i2 = 4}; कंसोल.प्रकाश रेखा ("फ़ील्ड बी 1 ऑफसेट: {0}", GetFieldOffset ("b1")। मान); कंसोल.प्रकाश रेखा ("फ़ील्ड बी 2 ऑफसेट: {0}", GetFieldOffset ("b2")। मान); कंसोल.प्रकाश रेखा ("फ़ील्ड आईओ ऑफसेट: {0}", GetFieldOffset ("i1")। मान); कंसोल.प्रकाशलाइन ("फ़ील्ड आई 2 ऑफ़सेट: {0}", GetFieldOffset ("i2")। मान); Console.ReadLine (); }}
प्रिंट्स: फ़ील्ड बी 1 ऑफ़सेट: 0 फ़ील्ड बी 2 ऑफ़सेट: 3 फ़ील्ड i1 ऑफ़सेट: 7 फ़ील्ड i2 ऑफ़सेट: 12
Comments
Post a Comment