Отсутствие IsNumeric функции в C # - PullRequest
11 голосов
/ 27 мая 2010

Одна вещь, которая беспокоила меня о C # с момента его выпуска, это отсутствие общей функции IsNumeric. Я знаю, что сложно создать универсальное решение для определения числового значения.

В прошлом я использовал следующее решение, но это не лучшая практика, потому что я генерирую исключение, чтобы определить, является ли значение IsNumeric:

public bool IsNumeric(string input)
{
    try
    {
        int.Parse(input);
        return true;
    }
    catch
    {
        return false;
    }
}

Это все еще лучший способ решения этой проблемы или есть более эффективный способ определить, является ли значение числовым в C #?

Ответы [ 13 ]

0 голосов
/ 11 июля 2014

Вы все еще можете использовать функцию Visual Basic в C #. Единственное, что вам нужно сделать, это просто следовать моим инструкциям, приведенным ниже:

  1. Добавьте ссылку на библиотеку Visual Basic , щелкнув правой кнопкой мыши свой проект и выбрав «Добавить ссылку»:

enter image description here

  1. Затем импортируйте в свой класс, как показано ниже:

    с использованием Microsoft.VisualBasic;

  2. Далее используйте его, где хотите , как показано ниже:

            if (!Information.IsNumeric(softwareVersion))
        {
            throw new DataException(string.Format("[{0}] is an invalid App Version!  Only numeric values are supported at this time.", softwareVersion));
        }
    

Надеюсь, это поможет и удачи!

0 голосов
/ 27 мая 2010

попробуйте это:

public static bool IsNumeric(object o)
{
    const NumberStyles sty = NumberStyles.Any;
    double d;
    return (o != null && Double.TryParse(o.ToString(), sty, null, out d));
}
0 голосов
/ 27 мая 2010
public bool IsNumeric(string input)
{
   int result;
   return Int32.TryParse(input,out result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...