Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Kiểm tra bằng nhau giữa instance UInt64 và object hoặc UInt64 khác trong C#

Mục đích

Phương thức Equals của ulong (UInt64) kiểm tra xem instance hiện tại có giá trị bằng với object hoặc UInt64 khác hay không. Trả về true nếu bằng, ngược lại false.

Nạp chồng

  • Equals(ulong obj) - so sánh với UInt64 khác (hiệu quả, tránh boxing).
  • Equals(object obj) - so sánh với object bất kỳ (kiểm tra null, kiểu).

Ví dụ 1: So sánh hai giá trị khác nhau

using System;

public class Demo
{
    public static void Main()
    {
        ulong val1 = 44565777;
        ulong val2 = 77878787;

        bool res = val1.Equals(val2);
        Console.WriteLine($"Kết quả so sánh: {res}");
        Console.WriteLine(res ? "val1 = val2" : "val1 != val2");
    }
}

Kết quả

Kết quả so sánh: False
val1 != val2

Ví dụ 2: So sánh hai giá trị giống nhau

using System;

public class Demo
{
    public static void Main()
    {
        ulong val1 = 78796878;
        ulong val2 = 78796878;

        bool res = val1.Equals(val2);
        Console.WriteLine($"Kết quả so sánh: {res}");
        Console.WriteLine(res ? "val1 = val2" : "val1 != val2");
    }
}

Kết quả

Kết quả so sánh: True
val1 = val2

Ví dụ 3: So sánh với object (boxing)

using System;

public class Demo
{
    public static void Main()
    {
        ulong val = 12345;
        object obj = 12345UL; // boxing
        object obj2 = 12345L; // long, khác kiểu

        Console.WriteLine($"val.Equals(obj): {val.Equals(obj)}");   // true
        Console.WriteLine($"val.Equals(obj2): {val.Equals(obj2)}"); // false (kiểu khác)
        Console.WriteLine($"val.Equals(null): {val.Equals(null)}"); // false
    }
}

Lưu ý

  • Ưu tiên dùng Equals(ulong) để tránh boxing/unboxing.
  • Toán tử == cũng hoạt động tương tự cho kiểu giá trị.
  • Khi dùng trong generic (ví dụ List<ulong>), EqualityComparer<ulong>.Default sẽ dùng phương thức này.