Мне нужна была функция, которая просто проверяет , если строка может быть преобразована в действительное целое число (для проверки формы).Есть ли лучший способ определить, может ли строка быть целым, кроме try/catch?
После поиска, я закончил использовать функцию, которая была у меня с 2002 года, которая работает с использованием C# 1 (ниже).
Однако мне кажется, что хотя приведенный ниже код работает, является неправильным использованием try/catch, чтобы использовать его, чтобы не поймать ошибку, а определить значение.
Есть ли лучший способ сделать это в C# 3?
public static bool IsAValidInteger(string strWholeNumber)
{
try
{
int wholeNumber = Convert.ToInt32(strWholeNumber);
return true;
}
catch
{
return false;
}
}
Ответ:
ответ Джона ниже помогли мне построить функцию я был после того, как без Try/уловом. В этом случае пустое текстовое поле также считается действующий «целое число» в моей форме:
public static bool IsAValidWholeNumber(string questionalWholeNumber)
{
int result;
if (questionalWholeNumber.Trim() == "" || int.TryParse(questionalWholeNumber, out result))
{
return true;
}
else
{
return false;
}
}
И long.TryParse для 64-битных значений тоже. – devstuff