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

C# में == ऑपरेटर बनाम Equals() मेथड: अंतर


दोनों समानता जांचते हैं, लेकिन अर्थ अलग है: रेफरेंस समानता बनाम मान समानता।

रेफरेंस टाइप्स के लिए

  • ==: डिफ़ॉल्ट रूप से **रेफरेंस समानता** (एक ही ऑब्जेक्ट?)।
  • Equals(): **मान समानता** जांचने के लिए ओवरराइड किया जा सकता है।
  • string दोनों के लिए मान समानता करता है (ऑपरेटर ओवरलोडेड)।

उदाहरण 1: समान रेफरेंस

string str = "hello";
string str2 = str;  // समान रेफरेंस

Console.WriteLine(str == str2);       // True (रेफरेंस)
Console.WriteLine(str.Equals(str2));  // True (मान)

उदाहरण 2: अलग ऑब्जेक्ट्स, समान मान

object str = "hello";
char[] values = {'h','e','l','l','o'};
object str2 = new string(values);  // अलग ऑब्जेक्ट, समान मान

Console.WriteLine(str == str2);       // False (रेफरेंस अलग)
Console.WriteLine(str.Equals(str2));  // True (मान समान)

आउटपुट

उदाहरण 1:
True
True

उदाहरण 2:
False
True

मूल्य प्रकार (वैल्यू टाइप्स) के लिए

  • दोनों **मान समानता** जांचते हैं।
  • int a = 5, b = 5; a == b → True, a.Equals(b) → True।

सर्वोत्तम प्रथाएं

  • स्ट्रिंग्स के लिए: == या Equals() दोनों ठीक (मान समानता)।
  • कस्टम क्लासेस: Equals() और GetHashCode() ओवरराइड करें, ==/!= ऑपरेटर ओवरलोड करें।
  • नल-सेफ जांच: string.Equals(a, b) (स्टैटिक) या a?.Equals(b) ?? false।
  • ReferenceEquals(a, b) केवल रेफरेंस समानता के लिए।
  1. - जावा में sleep() और wait() मेथड में अंतर

    इस पोस्ट में, हम जावा में sleep और wait मेथड के बीच अंतर को समझेंगे।Waitयह Object क्लास से संबंधित है।यह मेथड सिंक्रोनाइज़ेशन होने पर लॉक जारी करता है।यह एक स्टैटिक मेथड नहीं है।इसे केवल सिंक्रोनाइज़्ड कॉन्टेक्स्ट से बुलाया जाना चाहिए।इस मेथड के तीन ओवरलोडेड मेथड्स हैं, अर्थात्wait()wait(long timeou

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व

  1. - Python में मेथड और फ़ंक्शन के बीच अंतर

    फ़ंक्शन एक फ़ंक्शन एक विशिष्ट कार्य को पूरा करने के लिए कोड का एक ब्लॉक है, जिसमें अपना स्वयं का स्कोप होगा और नाम से बुलाया जाता है। सभी फ़ंक्शन में शून्य (कोई नहीं) तर्क या एक से अधिक तर्क हो सकते हैं। बाहर निकलने पर, एक फ़ंक्शन एक या अधिक मान वापस कर सकता है या नहीं भी कर सकता है। बुनियादी फ़ंक