Giới thiệu
Int32 Struct đại diện cho số nguyên 32-bit có dấu (signed 32-bit integer). Là kiểu giá trị bất biến (immutable value type) với phạm vi từ -2,147,483,648 đến 2,147,483,647. Trong C#, int là alias của Int32.
Các trường (Fields) của Int32
| STT | Trường & Mô tả |
|---|---|
| 1 | MaxValue Giá trị lớn nhất có thể của Int32: 2,147,483,647 (0x7FFFFFFF). Trường hằng (const). |
| 2 | MinValue Giá trị nhỏ nhất có thể của Int32: -2,147,483,648 (0x80000000). Trường hằng (const). |
Các phương thức chính của Int32
| STT | Phương thức & Mô tả |
|---|---|
| 1 | CompareTo(Int32) So sánh thể hiện này với Int32 khác, trả về int chỉ ra nhỏ hơn, bằng, hay lớn hơn. |
| 2 | CompareTo(Object) So sánh với object (phải là Int32 hoặc null), ném ArgumentException nếu kiểu khác. |
| 3 | Equals(Int32) Trả về true nếu bằng giá trị Int32 chỉ định. |
| 4 | Equals(Object) Trả về true nếu object là Int32 và giá trị bằng nhau. |
| 5 | GetHashCode() Trả về hash code cho thể hiện này (thường chính giá trị int). |
| 6 | GetTypeCode() Trả về TypeCode.Int32 (giá trị 9). |
| 7 | Parse(String) Chuyển chuỗi thành Int32. Ném FormatException/OverflowException nếu sai. |
| 8 | TryParse(String, out Int32) Thử parse, trả về bool thành công, không ném ngoại lệ. Khuyên dùng thay Parse. |
| 9 | ToString() Chuyển thành chuỗi, hỗ trợ các format chuẩn và tùy chỉnh. |
Ví dụ minh họa
using System;
public class Demo {
public static void Main() {
int val1 = Int32.MaxValue;
int val2 = Int32.MinValue;
int val3 = 42;
Console.WriteLine("MaxValue = " + val1);
Console.WriteLine("MinValue = " + val2);
Console.WriteLine("HashCode của 42 = " + val3.GetHashCode());
Console.WriteLine("TypeCode = " + val3.GetTypeCode());
// Parse an toàn
string input = "12345";
if (Int32.TryParse(input, out int result)) {
Console.WriteLine("Parse thành công: " + result);
} else {
Console.WriteLine("Parse thất bại");
}
// So sánh
Console.WriteLine("42.CompareTo(100) = " + 42.CompareTo(100)); // -1
Console.WriteLine("42.Equals(42) = " + 42.Equals(42)); // True
}
}
Đầu ra
MaxValue = 2147483647 MinValue = -2147483648 HashCode của 42 = 42 TypeCode = Int32 Parse thành công: 12345 42.CompareTo(100) = -1 42.Equals(42) = True
Lưu ý quan trọng
Int32là value type (struct), lưu trên stack, copy by value.- Dùng
TryParsethayParseđể tránh exception khi input không hợp lệ. - Khi boxing (gán cho object), tốn chi phí cấp phát heap.
- Các phép toán số học trên
intkhông kiểm tra overflow mặc định. Dùngcheckedblock hoặccheckedkeyword để bật kiểm tra.
Khi nào dùng Int32 vs int
Cả hai hoàn toàn tương đương. int là keyword C#, Int32 là tên kiểu .NET Framework (CLR). Theo convention C#, dùng int cho biến cục bộ, tham số; dùng Int32 khi làm việc với reflection, serialization, hoặc code tương tác cross-language.