Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีเปรียบเทียบ Int64 ว่าเท่ากับออบเจ็กต์หรือ Int64 อื่นใน C#

บทความนี้สาธิตวิธีการเปรียบเทียบค่า 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 อีกตัว คืนค่า bool
  • Int64.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> ได้