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

โครงสร้าง Int64 Struct ใน C# : จำนวนเต็ม 64-bit และเมธอดหลัก

Int64 struct ใน C# แทนจำนวนเต็มที่มีเครื่องหมาย 64-bit (signed 64-bit integer) เป็น value type ที่ immutable มีช่วงค่าตั้งแต่ -9,223,372,036,854,775,808 ถึง 9,223,372,036,854,775,807 ใน C# ใช้คีย์เวิร์ด long เป็น alias ของ Int64

Fields (ฟิลด์คงที่)

Field คำอธิบาย
MaxValue ค่าสูงสุดที่เป็นไปได้ของ Int64 (9,223,372,036,854,775,807) - คงที่
MinValue ค่าต่ำสุดที่เป็นไปได้ของ Int64 (-9,223,372,036,854,775,808) - คงที่

เมธอดหลัก (Methods)

เมธอด คำอธิบาย
CompareTo(Int64) เปรียบเทียบกับ Int64 อื่น คืน -1, 0, 1
CompareTo(Object) เปรียบเทียบกับ object คืน -1, 0, 1
Equals(Int64) ตรวจสอบเท่ากับ Int64 อื่น
Equals(Object) ตรวจสอบเท่ากับ object
GetHashCode() คืนค่า hash code
GetTypeCode() คืน TypeCode.Int64
Parse(String) แปลงสตริงเป็น Int64
Parse(String, IFormatProvider) แปลงสตริงเป็น Int64 ตามรูปแบบวัฒนธรรม

ตัวอย่าง: Int64.CompareTo()

เปรียบเทียบกับ long

using System;

public class Demo
{
    public static void Main()
    {
        long val1 = 20;
        long val2 = 18;
        
        Console.WriteLine("Value 1 = " + val1);
        Console.WriteLine("Value 2 = " + val2);
        Console.WriteLine("Return value (comparison) = " + val1.CompareTo(val2)); // 1 (มากกว่า)
    }
}
Value 1 = 20
Value 2 = 18
Return value (comparison) = 1

เปรียบเทียบกับ object

using System;

public class Demo
{
    public static void Main()
    {
        long val1 = 20;
        object val2 = (long)20;
        
        Console.WriteLine("Value 1 = " + val1);
        Console.WriteLine("Value 2 = " + val2);
        Console.WriteLine("Return value (comparison) = " + val1.CompareTo(val2)); // 0 (เท่ากัน)
    }
}
Value 1 = 20
Value 2 = 20
Return value (comparison) = 0

ตัวอย่าง: Int64.Equals()

ค่าต่างกัน

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)); // False
    }
}
Value1 = 150
Value2 = 240
Are they equal? = False

ค่าเท่ากัน

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)); // True
    }
}
Value1 = 8768768768
Value2 = 8768768768
Are they equal? = True

สรุป

  • ใช้ long ใน C# แทน Int64 (compile-time alias)
  • เหมาะสำหรับตัวเลขขนาดใหญ่ที่ int (Int32) ไม่พอ เช่น timestamp (ticks), file size, ID ขนาดใหญ่
  • CompareTo() คืนค่า: -1 (น้อยกว่า), 0 (เท่ากัน), 1 (มากกว่า)
  • Equals() แนะนำใช้ overload Equals(long) เพื่อหลีกเลี่ยง boxing
  • มี TryParse() สำหรับแปลงสตริงอย่างปลอดภัย (ไม่ throw exception)