Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Cấu trúc Int32 Struct trong C#

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

STTTrườ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

STTPhươ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

  • Int32 là value type (struct), lưu trên stack, copy by value.
  • Dùng TryParse thay Parse để 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 int không kiểm tra overflow mặc định. Dùng checked block hoặc checked keyword để 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.