Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में क्लास और स्ट्रक्चर में अंतर


क्लास और स्ट्रक्चर के बीच अंतर करने के लिए, हमें पहले यह समझना होगा कि डेटा को धारण करने और परिभाषित करने के संदर्भ में दोनों स्ट्रक्चर और क्लास समतुल्य प्रतीत होते हैं। ये दोनों अपने डेटा सदस्यों में कुछ डिफ़ॉल्ट मानों को परिभाषित और धारण कर सकते हैं। लेकिन यदि हम इसे इस संदर्भ से परे मानते हैं तो क्लास स्ट्रक्चर की तुलना में अधिक लचीलापन और कार्यक्षमता प्रदान करता है।

क्लास और स्ट्रक्चर के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

क्र.सं.मुख्य बिंदुक्लासस्ट्रक्चर
1डेटा प्रकारक्लास में परिभाषित डेटा मेमोरी में रेफरेंस के रूप में संग्रहीत होता है और एक्सेस करने के लिए इसका एक विशेष पता होता है, इसलिए इसे रेफरेंस प्रकार कहा जा सकता है।दूसरी ओर स्ट्रक्चर के मामले में डेटा सदस्य का मान सीधे स्टैक में या इनलाइन कंटेनिंग प्रकारों में संग्रहीत होता है इसलिए स्ट्रक्चर को वैल्यू प्रकार माना जाता है।
2संग्रहणऊपर बताए गए बिंदु के अनुसार, क्लास के मामले में डेटा सदस्य रेफरेंस के रूप में संग्रहीत होते हैं और रेफरेंस प्रकार हीप मेमोरी पर आवंटित होते हैं।दूसरी ओर स्ट्रक्चर में सीधा मान संग्रहीत होता है इसलिए वैल्यू प्रकार स्टैक मेमोरी पर आवंटित होते हैं।
3कंस्ट्रक्टरक्लास को कंस्ट्रक्टर के साथ-साथ डी-कंस्ट्रक्टर के साथ परिभाषित किया जा सकता है क्योंकि इसकी कार्यक्षमता लागू होती है।दूसरी ओर स्ट्रक्चर में न तो कंस्ट्रक्टर हो सकता है और न ही डी-कंस्ट्रक्टर क्योंकि ऐसा कोई कार्यान्वयन प्रदान नहीं किया गया है।
4इंस्टेंशिएटकंस्ट्रक्टर के साथ पेश किए जाने के कारण क्लास new कीवर्ड की मदद से अपने इंस्टेंस को इंस्टेंशिएट कर सकता है।दूसरी ओर स्ट्रक्चर new कीवर्ड के बिना इंस्टेंस बना सकता है।
5विरासतक्लास अपने पैरेंट क्लास से प्रॉपर्टीज इनहेरिट कर सकता है क्योंकि यह विरासत सुविधा का समर्थन करता है।दूसरी ओर स्ट्रक्चर विरासत का समर्थन नहीं करता।
6प्रोटेक्टेड मॉडिफायरहम क्लास में परिभाषित डेटा सदस्यों के साथ प्रोटेक्टेड मॉडिफायर का उपयोग कर सकते हैं क्योंकि क्लास प्रोटेक्टेड मॉडिफायर का समर्थन करता है।दूसरी ओर स्ट्रक्चर प्रोटेक्टेड मॉडिफायर का समर्थन नहीं करता।

  1. - जावा में String और StringBuffer क्लास में अंतर

    इस पोस्ट में, हम जावा में String और StringBuffer क्लास के बीच अंतर को समझेंगे।Stringयह एक इम्यूटेबल क्लास है।इसका मतलब है कि क्लास के तत्वों में बदलाव नहीं किए जा सकते।यह धीमा है।स्ट्रिंग्स कॉनकैटनेट होने पर यह कम मेमोरी खपत करता है।ऐसा इसलिए है क्योंकि हर बार एक नया इंस्टेंस बनाया जाता है।यह Object

  1. - जावा में Static और Final में अंतर

    इस पोस्ट में, हम जावा में static और final कीवर्ड के बीच अंतर को समझेंगे।Staticइसे नेस्टेड स्टैटिक क्लास, वेरिएबल्स, मेथड्स और ब्लॉक पर लागू किया जा सकता है।स्टैटिक वेरिएबल को घोषित करते समय इनिशियलाइज़ करना आवश्यक नहीं है।इस वेरिएबल को पुनः आरंभ किया जा सकता है।यह क्लास के केवल स्टैटिक मेंबर्स को एक

  1. - जावा में Class और Interface में अंतर

    इस पोस्ट में, हम जावा में क्लास और इंटरफेस के बीच अंतर को समझेंगे।Classयह बताता है कि एक ऑब्जेक्ट में कौन से गुण और व्यवहार होने चाहिए।इसमें एब्स्ट्रैक्ट मेथड्स के साथ-साथ सामान्य मेथड्स भी हो सकते हैं।इसे बनाने की कीवर्ड class है।इसे इंस्टेंटिएट किया जा सकता है।यह मल्टीपल इनहेरिटेंस को सपोर्ट नहीं