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

C# में मूल्य प्रकार और संदर्भ प्रकार की अवधारणा समझाएं और तुलना करें


सामान्य तौर पर, C# में सभी प्रकारों को दो मुख्य श्रेणियों में विभाजित किया जा सकता है − मूल्य प्रकार और संदर्भ प्रकार। आइए प्रत्येक प्रकार को विस्तार से देखें।

मूल्य प्रकार

मूल्य प्रकार के वेरिएबल्स सीधे अपने डेटा को समाहित करते हैं। प्रत्येक वेरिएबल की अपने डेटा की अपनी कॉपी होती है। इसलिए मूल्य प्रकार के वेरिएबल के लिए किसी अन्य ऑब्जेक्ट को संशोधित करना असंभव है।

मूल्य प्रकार निम्न में से एक हो सकता है −

  • सभी संख्यात्मक प्रकार, उदा., int, float, और double
  • char और bool प्रकार
  • struct प्रकार या
  • एन्यूमरेशन प्रकार।

एक मूल्य प्रकार केवल मान को समाहित करता है। उदाहरण के लिए, पूर्णांक प्रकार वास्तविक संख्या को समाहित करता है, न कि संख्या का पॉइंटर, जैसे संदर्भ प्रकार।

कस्टम मूल्य प्रकार बनाने के लिए, आप struct का उपयोग कर सकते हैं। उदाहरण के लिए −

public struct Point { public int X; public int Y; } var p1 = new Point();

मेमोरी में, Point का एक इंस्टेंस निम्नानुसार दर्शाया गया है −

C# में मूल्य प्रकार और संदर्भ प्रकार की अवधारणा समझाएं और तुलना करें

जब आप मूल्य प्रकार के वेरिएबल को दूसरे वेरिएबल को असाइन करते हैं, तो असाइनमेंट ऑपरेशन असाइन किए जा रहे मान की एक कॉपी बनाता है। उदाहरण के लिए,

Point p2 = p1;

C# में मूल्य प्रकार और संदर्भ प्रकार की अवधारणा समझाएं और तुलना करें

संदर्भ प्रकार

संदर्भ प्रकार के वेरिएबल्स अपने ऑब्जेक्ट्स का संदर्भ संग्रहीत करते हैं। दो अलग-अलग वेरिएबल्स के लिए एक ही ऑब्जेक्ट का संदर्भ रखना संभव है। एक वेरिएबल द्वारा ऑब्जेक्ट में किए गए कोई भी परिवर्तन दूसरे वेरिएबल को दिखाई देते हैं।

संदर्भ प्रकार में निम्न शामिल हैं −

  • String
  • Class
  • Array
  • Delegate
  • Interface

उदाहरण के लिए, आप एक क्लास बना सकते हैं, जो एक संदर्भ प्रकार है जैसे −

public class Point{    public int X;    public int Y; } var p1 = new Point();

C# में मूल्य प्रकार और संदर्भ प्रकार की अवधारणा समझाएं और तुलना करें

जब आप संदर्भ प्रकार के वेरिएबल को दूसरे वेरिएबल को असाइन करते हैं, तो असाइनमेंट ऑपरेशन केवल संदर्भ को कॉपी करता है, वास्तविक ऑब्जेक्ट को नहीं।

Point p2 = p1;

C# में मूल्य प्रकार और संदर्भ प्रकार की अवधारणा समझाएं और तुलना करें

उदाहरण

using System; class Program{    static void Main(){       var p1 = new Point { X = 10 };       Point p2 = p1;       p2.X = 20;       Console.WriteLine("Value Type");       Console.WriteLine(p1.X);       Console.WriteLine(p2.X);       var u1 = new User { Age = 10 };       User u2 = u1;       u2.Age = 20;       Console.WriteLine("Reference Type");       Console.WriteLine(u1.Age);       Console.WriteLine(u2.Age);    } } public struct Point{    public int X;    public int Y; } public class User{    public int Age { get; set; } }

आउटपुट

Value Type 10 20 Reference Type 20 20
  1. - MongoDB: रेफरेंस को की के रूप में उपयोग करके मैन्युअली वैल्यू जोड़ें

    मैन्युअली वैल्यू जोड़ने के लिए, MongoDB में $push का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo585.insert({ firstName: John, lastName: Doe, SubjectName:MongoDB, Marks: [59] }); WriteResult({ nInserted : 1 }) > db.demo585.insert({ firstName: Chris,

  1. - C प्रोग्रामिंग में रेफरेंस और पॉइंटर समझाया गया

    समस्या उदाहरणों के साथ C प्रोग्रामिंग भाषा में रेफरेंस और पॉइंटर की अवधारणा समझाएं। रेफरेंस (Reference) - C++ अवधारणा, C में नहीं महत्वपूर्ण: C भाषा में मूल रूप से रेफरेंस का समर्थन नहीं है। रेफरेंस C++ की विशेषता है। C में हम पॉइंटर्स का उपयोग करके समान व्यवहार प्राप्त करते हैं। लेख में रेफरेंस

  1. C में volatile और restrict टाइप क्वालिफायर्स उदाहरण के साथ समझें C में volatile और restrict टाइप क्वालिफायर्स उदाहरण के साथ समझें

    टाइप क्वालिफायर्स C प्रोग्रामिंग भाषा में मौजूदा डेटा टाइप्स में विशेष विशेषताएं जोड़ते हैं। C भाषा में तीन टाइप क्वालिफायर्स हैं: const, volatile, और restrict। यहां volatile और restrict समझाए गए हैं। Volatile एक volatile टाइप क्वालिफायर कंपाइलर को बताता है कि एक वेरिएबल शेयर्ड है। यानी, यदि इसे v