खोज…


सी # और समानता ऑपरेटर में समानता प्रकार

C # में, समानता के दो अलग-अलग प्रकार हैं: संदर्भ समानता और मूल्य समानता। मूल्य समानता समानता का आमतौर पर समझा जाने वाला अर्थ है: इसका मतलब है कि दो वस्तुओं में समान मूल्य होते हैं। उदाहरण के लिए, 2 के मूल्य वाले दो पूर्णांक में मूल्य समानता है। संदर्भ समानता का मतलब है कि तुलना करने के लिए दो वस्तुएं नहीं हैं। इसके बजाय, दो वस्तु संदर्भ हैं, दोनों एक ही वस्तु को संदर्भित करते हैं।

object a = new object();
object b = a;
System.Object.ReferenceEquals(a, b);  //returns true

पूर्वनिर्धारित मूल्य प्रकारों के लिए, समानता ऑपरेटर (==) सही है यदि इसके ऑपरेंड के मान समान हैं, अन्यथा झूठे हैं। स्ट्रिंग के अलावा अन्य संदर्भ प्रकारों के लिए, == सही है यदि इसके दो ऑपरेंड एक ही ऑब्जेक्ट को संदर्भित करते हैं। स्ट्रिंग प्रकार के लिए, == स्ट्रिंग्स के मूल्यों की तुलना करता है।

// Numeric equality: True
Console.WriteLine((2 + 2) == 4);

// Reference equality: different objects, 
// same boxed value: False.
object s = 1;
object t = 1;
Console.WriteLine(s == t);

// Define some strings:
string a = "hello";
string b = String.Copy(a);
string c = "hello";

// Compare string values of a constant and an instance: True
Console.WriteLine(a == b);

// Compare string references; 
// a is a constant but b is an instance: False.
Console.WriteLine((object)a == (object)b);

// Compare string references, both constants 
// have the same value, so string interning
// points to same reference: True.
Console.WriteLine((object)a == (object)c);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow