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>.Defaultsẽ dùng phương thức này.