Cấu trúc Int64 (alias long) trong C# biểu diễn số nguyên có dấu 64-bit. Là kiểu giá trị (value type) bất biến, đại diện cho các số nguyên có dấu trong phạm vi:
-9.223.372.036.854.775.808 đến 9.223.372.036.854.775.807.
Các trường (Fields) quan trọng
| Trường | Mô tả |
|---|---|
MaxValue |
Giá trị lớn nhất có thể của Int64 (9.223.372.036.854.775.807). Hằng số. |
MinValue |
Giá trị nhỏ nhất có thể của Int64 (-9.223.372.036.854.775.808). Hằng số. |
Các phương thức thường dùng
| Phương thức | Mô tả |
|---|---|
CompareTo(Int64) |
So sánh instance này với Int64 khác, trả về chỉ thị giá trị tương đối. |
CompareTo(Object) |
So sánh instance này với object, trả về chỉ thị giá trị tương đối. |
Equals(Int64) |
Trả về true nếu instance này bằng Int64 chỉ định. |
Equals(Object) |
Trả về true nếu instance này bằng object chỉ định. |
GetHashCode() |
Trả về mã băm cho instance này. |
GetTypeCode() |
Trả về TypeCode cho kiểu giá trị Int64. |
Parse(String) |
Chuyển biểu diễn chuỗi thành Int64. |
Parse(String, IFormatProvider) |
Chuyển chuỗi theo format culture-specific thành Int64. |
ToString() |
Chuyển giá trị số thành chuỗi. |
TryParse(String, out Int64) |
Thử parse, trả về bool thành công (không ném exception). |
Ví dụ 1: Int64.CompareTo()
using System;
public class Demo
{
public static void Main()
{
long val1 = 20;
long val2 = 18;
Console.WriteLine("Giá trị 1 = " + val1);
Console.WriteLine("Giá trị 2 = " + val2);
Console.WriteLine("Kết quả so sánh = " + val1.CompareTo(val2)); // 1 (val1 > val2)
}
}
Kết quả
Giá trị 1 = 20 Giá trị 2 = 18 Kết quả so sánh = 1
Ví dụ 2: CompareTo với object
using System;
public class Demo
{
public static void Main()
{
long val1 = 20;
object val2 = (long)20; // Boxed long
Console.WriteLine("Giá trị 1 = " + val1);
Console.WriteLine("Giá trị 2 = " + val2);
Console.WriteLine("Kết quả so sánh = " + val1.CompareTo(val2)); // 0 (bằng nhau)
}
}
Kết quả
Giá trị 1 = 20 Giá trị 2 = 20 Kết quả so sánh = 0
Ví dụ 3: Int64.Equals()
using System;
public class Demo
{
public static void Main()
{
long val1 = 150;
long val2 = 240;
Console.WriteLine("Giá trị 1 = " + val1);
Console.WriteLine("Giá trị 2 = " + val2);
Console.WriteLine("Hai giá trị bằng nhau? = " + val1.Equals(val2)); // False
}
}
Kết quả
Giá trị 1 = 150 Giá trị 2 = 240 Hai giá trị bằng nhau? = False
Ví dụ 4: Equals với giá trị lớn bằng nhau
using System;
public class Demo
{
public static void Main()
{
long val1 = 8768768768;
long val2 = 8768768768;
Console.WriteLine("Giá trị 1 = " + val1);
Console.WriteLine("Giá trị 2 = " + val2);
Console.WriteLine("Hai giá trị bằng nhau? = " + val1.Equals(val2)); // True
}
}
Kết quả
Giá trị 1 = 8768768768 Giá trị 2 = 8768768768 Hai giá trị bằng nhau? = True
Int64 vs long
longlà từ khóa C# (alias),Int64là tên kiểu .NET (CLR).- Hai cái hoàn toàn tương đương, dùng lẫn nhau được.
- Theo quy ước C#: dùng
longcho biến,Int64khi gọi static member (Int64.MaxValue,Int64.Parse).
Parse và TryParse
string s = "9223372036854775807";
long val = Int64.Parse(s); // Ném exception nếu sai format
// An toàn hơn:
if (Int64.TryParse(s, out long result))
{
Console.WriteLine("Parse thành công: " + result);
}
else
{
Console.WriteLine("Chuỗi không hợp lệ");
}