C# में UInt64.Equals() मेथड एक मान लौटाता है जो दर्शाता है कि क्या वर्तमान इंस्टेंस किसी निर्दिष्ट ऑब्जेक्ट या UInt64 मान के बराबर है।
सिंटैक्स
दो ओवरलोड उपलब्ध हैं:
public override bool Equals (object ob); public bool Equals (ulong ob);
- पहला सिंटैक्स: ob पैरामीटर इस इंस्टेंस से तुलना करने के लिए एक ऑब्जेक्ट है
- दूसरा सिंटैक्स: ob पैरामीटर इस इंस्टेंस से तुलना करने के लिए 64-बिट अनसाइन्ड इंटीजर है
उदाहरण 1: असमान मान
using System;
public class Demo
{
public static void Main()
{
ulong val1 = 44565777;
ulong val2 = 77878787;
bool res = val1.Equals(val2);
Console.WriteLine("Return value (comparison) = " + res);
if (res)
Console.WriteLine("val1 = val2");
else
Console.WriteLine("val1 != val2");
}
}
आउटपुट
Return value (comparison) = False val1 != val2
उदाहरण 2: समान मान
using System;
public class Demo
{
public static void Main()
{
ulong val1 = 78796878;
ulong val2 = 78796878;
bool res = val1.Equals(val2);
Console.WriteLine("Return value (comparison) = " + res);
if (res)
Console.WriteLine("val1 = val2");
else
Console.WriteLine("val1 != val2");
}
}
आउटपुट
Return value = True val1 = val2
उदाहरण 3: ऑब्जेक्ट ओवरलोड का उपयोग
using System;
public class Demo
{
public static void Main()
{
ulong val1 = 12345;
object obj1 = 12345UL; // ulong ऑब्जेक्ट
object obj2 = 12345u; // uint ऑब्जेक्ट
object obj3 = "12345"; // स्ट्रिंग ऑब्जेक्ट
Console.WriteLine("val1.Equals(obj1): " + val1.Equals(obj1)); // True (ulong)
Console.WriteLine("val1.Equals(obj2): " + val1.Equals(obj2)); // False (uint ≠ ulong)
Console.WriteLine("val1.Equals(obj3): " + val1.Equals(obj3)); // False (स्ट्रिंग)
Console.WriteLine("val1.Equals(null): " + val1.Equals(null)); // False
}
}
आउटपुट
val1.Equals(obj1): True val1.Equals(obj2): False val1.Equals(obj3): False val1.Equals(null): False
Equals() बनाम == ऑपरेटर
| पहलू | Equals(ulong) | == ऑपरेटर |
|---|---|---|
| प्रदर्शन | वर्चुअल कॉल (थोड़ा धीमा) | सीधा IL निर्देश (तेज) |
| null सुरक्षा | N/A (ulong null नहीं हो सकता) | N/A |
| बॉक्सिंग | नहीं (टाइप-सेफ ओवरलोड) | नहीं |
| ऑब्जेक्ट ओवरलोड | बॉक्सिंग आवश्यक | लागू नहीं |
मुख्य बिंदु
- टाइप-सेफ ओवरलोड
Equals(ulong)का उपयोग करें - बॉक्सिंग से बचाता है Equals(object)केवल उसी प्रकार (ulong) के ऑब्जेक्ट के लिए true लौटाता है- uint, long, decimal आदि के लिए false लौटाता है भले ही संख्यात्मक मान समान हो
- हैश-आधारित संग्रह में कुंजी के रूप में उपयोग के लिए उपयुक्त
- IEquatable<UInt64> इंटरफेस को लागू करता है