บทความนี้สาธิตวิธีการเปรียบเทียบค่า Int64 (long) ว่าเท่ากับออบเจ็กต์หรือ Int64 อื่นหรือไม่ โดยใช้ method Equals()
ตัวอย่างที่ 1: เปรียบเทียบค่าที่ต่างกัน
using System;
public class Demo
{
public static void Main()
{
long val1 = 150;
long val2 = 240;
Console.WriteLine("Value1 = " + val1);
Console.WriteLine("Value2 = " + val2);
Console.WriteLine("Are they equal? = " + val1.Equals(val2));
}
}
ผลลัพธ์
Value1 = 150 Value2 = 240 Are they equal? = False
ตัวอย่างที่ 2: เปรียบเทียบค่าที่เท่ากัน
using System;
public class Demo
{
public static void Main()
{
long val1 = 8768768768;
long val2 = 8768768768;
Console.WriteLine("Value1 = " + val1);
Console.WriteLine("Value2 = " + val2);
Console.WriteLine("Are they equal? = " + val1.Equals(val2));
}
}
ผลลัพธ์
Value1 = 8768768768 Value2 = 8768768768 Are they equal? = True
คำอธิบายเพิ่มเติม
Int64.Equals(long value)เปรียบเทียบกับ long อีกตัว คืนค่า boolInt64.Equals(object obj)เปรียบเทียบกับ object ใดๆ คืนค่า false ถ้า obj ไม่ใช่ long- เป็น value equality - เปรียบเทียบค่าจริง ไม่ใช่ reference
- สำหรับ primitive types ใช้
==operator ได้ผลลัพธ์เหมือนกัน (และเร็วกว่าเล็กน้อย) - Method นี้ override มาจาก
ValueType.Equals()ซึ่งเปรียบเทียบ bit-by-bit - ใช้ใน generic constraints เช่น
where T : IEquatable<T>ได้