Tôi cần một hàm chỉ cần kiểm tra nếu chuỗi có thể được chuyển đổi thành số nguyên hợp lệ (để xác thực biểu mẫu).Có cách nào tốt hơn để xác định xem một chuỗi có thể là số nguyên không phải là try/catch không?
Sau khi tìm kiếm xung quanh, tôi đã kết thúc bằng cách sử dụng một hàm tôi đã có từ năm 2002 hoạt động bằng cách sử dụng C# 1 (bên dưới). Tuy nhiên, có vẻ như với tôi rằng mặc dù mã bên dưới hoạt động, đó là việc lạm dụng thử/bắt giữ để sử dụng nó không phải để bắt lỗi nhưng để xác định giá trị.
Có cách nào tốt hơn để thực hiện việc này trong C# 3 không?
public static bool IsAValidInteger(string strWholeNumber)
{
try
{
int wholeNumber = Convert.ToInt32(strWholeNumber);
return true;
}
catch
{
return false;
}
}
Trả lời:
câu trả lời của John dưới đây đã giúp tôi xây dựng các chức năng sau tôi đã không try/catch. Trong trường hợp này, một hộp trống cũng được coi là một "số nguyên" hợp lệ theo hình thức của tôi:
public static bool IsAValidWholeNumber(string questionalWholeNumber)
{
int result;
if (questionalWholeNumber.Trim() == "" || int.TryParse(questionalWholeNumber, out result))
{
return true;
}
else
{
return false;
}
}
Và dài.TryParse cho các giá trị 64 bit quá. – devstuff