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)