C# में Sizeof ऑपरेटर, एक ऑपरेटर है जिसका उपयोग एक अप्रबंधित प्रकार के आकार (बाइट्स में) को निर्धारित करने के लिए किया जाता है जो एक संदर्भ प्रकार नहीं है।
गतिशील मेमोरी आवंटन को शामिल करने वाले अनुप्रयोगों को विकसित करते समय, किसी प्रकार के लिए आवंटित मेमोरी को ढूंढना बहुत आम है। किसी प्रकार का आकार मान लेना और एप्लिकेशन में हार्ड-कोडित मान का उपयोग करना बहुत असुरक्षित है, क्योंकि यह विभिन्न सिस्टमों में पोर्ट किए जाने पर एप्लिकेशन को तोड़ सकता है। ऐसे मामलों में किसी संरचना जैसे मिश्रित डेटा प्रकार का आकार खोजने के लिए साइज़ऑफ़ ऑपरेटर का उपयोग किया जाता है। हालाँकि, इसका उपयोग केवल मान प्रकारों के बाइट आकार की गणना करने के लिए किया जा सकता है, न कि .NET फ्रेमवर्क के वर्चुअलाइज्ड प्रकार लेआउट सिस्टम के कारण संदर्भ प्रकारों के लिए।
साइज़ऑफ़ ऑपरेटर उन डेटा संरचनाओं के लिए मेमोरी आवंटन में मदद करता है जो प्रबंधित एप्लिकेशन से अप्रबंधित कोड जैसे इंटरऑप, कस्टम सीरियलाइज़ेशन आदि में पास हो जाते हैं। इंक्रीमेंट और डिक्रीमेंट ऑपरेटर्स, जो पॉइंटर्स पर काम करते हैं, शामिल पते को बढ़ाने या घटाने के लिए आंतरिक रूप से साइज़ोफ़ ऑपरेटर का उपयोग करते हैं। एक पॉइंटर वैरिएबल में पॉइंटर के प्रकार द्वारा व्याप्त बाइट्स की संख्या के बराबर मान। साइज़ऑफ़ ऑपरेटर कोड पठनीयता को बेहतर बनाने में मदद करता है।
साइज़ऑफ़ ऑपरेटर एक यूनरी ऑपरेटर है जो एक सिंगल पैरामीटर लेता है और इसका उपयोग कीवर्ड "साइज़ऑफ़" के साथ किया जाता है। C++ के विपरीत, sizeof ऑपरेटर एक संकलन-समय निर्माण है, इसलिए पैरामीटर को संकलन के दौरान ज्ञात एक बंद प्रकार होना चाहिए, न कि चर। पैरामीटर किसी फ़ील्ड या संदर्भ प्रकार के गुणों के बिना एक एनम, एक पॉइंटर या उपयोगकर्ता-परिभाषित संरचना भी हो सकता है। कुछ पूर्वनिर्धारित प्रकारों के लिए, sizeof ऑपरेटर एक स्थिर मान लौटाता है, जबकि शेष प्रकारों के साथ इसके उपयोग से कार्यान्वयन के आधार पर मान प्राप्त होते हैं।
उदाहरण के लिए, जब sizeof ऑपरेटर को एक पैरामीटर के रूप में पूर्णांक (int) के साथ निष्पादित किया जाता है, तो यह हमेशा यह इंगित करने के लिए संख्या चार लौटाता है कि पूर्णांक प्रकार का एक चर मेमोरी के चार बाइट्स लेता है।
जब साइज़ऑफ़ ऑपरेटर को एक स्ट्रक्चर प्रकार के ऑपरेंड पर लागू किया जाता है, तो यह एक स्ट्रक्चर द्वारा कब्जा किए गए बाइट्स की कुल संख्या प्राप्त करता है, जिसमें आंतरिक रूप से इसके संरेखण के लिए उपयोग किए जाने वाले पैडिंग बाइट्स शामिल होते हैं। संरचना के साथ sizeof ऑपरेटर का उपयोग करते समय पालन किए जाने वाले दिशानिर्देशों में शामिल हैं:
- इसे असुरक्षित ब्लॉक के भीतर बुलाया जाना चाहिए
- संरचना चर में संदर्भ प्रकार का कोई सदस्य नहीं होना चाहिए
- संरचना सामान्य मान प्रकार नहीं होनी चाहिए
0 Comments