Назад в день, мы использовали бы определенный "сервер блокировки" в сети для обработки этого. Bleh.
Ваш сервер базы данных мог бы иметь ресурсы специально для выполнения такого рода вещи. SQL SERVER MS имеет блокировки приложения, применимые через sp_getapplock / sp_releaseapplock процедуры.
Используйте метод int.TryParse .
string x = "42";
int value;
if(int.TryParse(x, out value))
// Do something
В случае успешного синтаксического анализа он вернет истину, а результат будет иметь значение в виде целого числа.
Я помню, как смотрел сравнение производительности между int.TryParse и int.Parse Regex, а char.IsNumber и char.IsNumber было самым быстрым. В любом случае, какой бы ни была производительность, вот еще один способ сделать это.
bool isNumeric = true;
foreach (char c in "12345")
{
if (!Char.IsNumber(c))
{
isNumeric = false;
break;
}
}
Если вы просто хотите проверить тип переданной переменной, вы, вероятно, можете использовать:
var a = 2;
if (a is int)
{
//is integer
}
//or:
if (a.GetType() == typeof(int))
{
//is integer
}