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

Khác biệt int.Parse() vs Convert.ToInt32() trong C#

Chuyển string representation của số thành integer dùng int.Parse hoặc Convert.ToInt32. Nếu string không convert được, cả hai đều ném exception.

Khác biệt chính: Convert.ToInt32 cho phép null value (trả về 0), không ném lỗi. int.Parse không cho phép null, ném ArgumentNullException.

Ví dụ int.Parse hợp lệ

class Program
{
    static void Main()
    {
        int res;
        string myStr = "5000";
        res = int.Parse(myStr);
        Console.WriteLine("Chuyển đổi: " + res);
        Console.ReadLine();
    }
}
Chuyển đổi: 5000

Ví dụ Convert.ToInt32 với null

class Program
{
    static void Main()
    {
        int res;
        string myStr = null;
        res = Convert.ToInt32(myStr);
        Console.WriteLine("Chuyển đổi: " + res);
        Console.ReadLine();
    }
}
Chuyển đổi: 0

Ví dụ int.Parse với null (lỗi)

class Program
{
    static void Main()
    {
        int res;
        string myStr = null;
        res = int.Parse(myStr); // ArgumentNullException
        Console.WriteLine("Chuyển đổi: " + res);
        Console.ReadLine();
    }
}
Unhandled exception. System.ArgumentNullException: Value cannot be null.