मैं प्राप्त करने के लिए structs परिभाषित कर रहा हूं और विभिन्न उपकरणों और विभिन्न प्रोग्रामिंग भाषाओं के बीच एक संचार चैनल पर भेजा गया है। इसके लिए मैं स्पष्ट रूप से StructLayoutAttribute (अनुक्रमिक, पैक = 1 - यदि यह मायने रखता है) का उपयोग करके स्मृति में अपने लेआउट को स्पष्ट रूप से परिभाषित करता है।सी # में गुणों पर StructLayoutAttribute प्रभाव क्या है?
प्रलेखन से, मुझे पता है कि यह कार्य करता है जब संरचना में केवल फ़ील्ड होते हैं। ऐसा लगता है कि 'सरल' गुणों के लिए भी काम किया जाता है (खाली पाने के साथ; सेट;)। हालांकि मुझे नहीं पता कि यह हमेशा मामला है या नहीं।
तो मेरे सवाल गुणों पर StructLayoutAttribute प्रभाव के बारे में दो को बांटा गया है:
- सरल गुण करो (फिर से, खाली मिलता है, सेट;) क्षेत्रों के रूप में ही व्यवहार करते हैं?
- अन्य गुण कैसे व्यवहार करते हैं, उदाहरण के लिए गुण जो उनके प्राप्त होते हैं वे अन्य गुणों पर गणना करते हैं? क्या उन्हें नजरअंदाज कर दिया गया है (क्योंकि मुझे उनके पीछे एक वास्तविक डेटा आइटम नहीं दिख रहा है)? क्या वे स्मृति लेते हैं?
तो 3 उत्तरों और किसी ने भी वास्तव में व्यवहार करने के तरीके पर कोई इनपुट नहीं दिया है। मुझे पता है कि आप इस पर निर्भर नहीं कर सकते हैं, लेकिन यदि आप एक विशिष्ट कंपाइलर का उपयोग कर सकते हैं तो आप कर सकते हैं। – leppie
जब भाषा व्यवहार को नियंत्रित करने के लिए सुविधाएं प्रदान करती है तो आप विशिष्ट कंपाइलर पर क्यों निर्भर करेंगे? बीटीडब्ल्यू मैंने जो लिंक प्रदान किया है, उसमें विवरण शामिल है कि संकलक कैसे व्यवहार करता है। – Stilgar
मैंने निजी फ़ील्ड और सार्वजनिक गणना की गई संपत्तियां तैयार कीं। चूंकि मैं कोड पीढ़ी का उपयोग करता हूं, यह एक बार परिवर्तन था। – Asaf