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

Kiểm tra bằng nhau UInt16 với object hoặc UInt16 khác trong C#

Mục đích

Phương thức Equals của ushort (UInt16) so sánh giá trị hiện tại với một object hoặc UInt16 khác. Trả về true nếu bằng.

Nạp chồng

  • Equals(ushort obj) - so sánh trực tiếp, hiệu quả.
  • Equals(object obj) - so sánh với object (boxing).

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

using System;

public class Demo
{
    public static void Main()
    {
        ushort val1 = 52;
        ushort val2 = 10;

        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()
    {
        ushort val1 = 100;
        ushort val2 = 100;

        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

using System;

public class Demo
{
    public static void Main()
    {
        ushort val = 255;
        object obj1 = (ushort)255; // boxing ushort
        object obj2 = (short)255;  // boxing short (kiểu khác)
        object obj3 = 255;         // boxing int (mặc định)

        Console.WriteLine($"val.Equals(obj1): {val.Equals(obj1)}"); // true
        Console.WriteLine($"val.Equals(obj2): {val.Equals(obj2)}"); // false (kiểu short)
        Console.WriteLine($"val.Equals(obj3): {val.Equals(obj3)}"); // false (kiểu int)
        Console.WriteLine($"val.Equals(null): {val.Equals(null)}"); // false
    }
}

Lưu ý

  • So sánh với object yêu cầu **kiểu chính xác** là UInt16 (không tự động chuyển đổi từ int, short...).
  • Ưu tiên Equals(ushort) để tránh boxing.
  • Toán tử == hoạt động ngầm cho các kiểu số.