Как я могу узнать, является ли значение в Request.Form числом? (С #) - PullRequest
3 голосов
/ 08 июня 2011

Предположим, я должен вызвать функцию со следующей сигнатурой: doStuff (Int32?)

Я хочу передать doStuff значение, которое читается из Request.Form.Однако, если переданное значение является пустым, отсутствует или не является числом, я хочу, чтобы doStuff передавался пустой аргумент.Это не должно привести к ошибке;это операция.

Я должен сделать это с восемью такими значениями, поэтому я хотел бы знать, как лучше написать в C #

var foo = Request.Form["foo"];
if (foo is a number)
    doStuff(foo);
else
    doStuff(null);

Ответы [ 3 ]

8 голосов
/ 08 июня 2011

Если вы хотите проверить, является ли это целое число или нет, попробуйте выполнить его разбор:

int value;
if (int.TryParse(Request.Form["foo"], out value)) {
    // it's a number use the variable 'value'
} else {
    // not a number
}
5 голосов
/ 08 июня 2011

Вы можете сделать что-то вроде

int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}
4 голосов
/ 08 июня 2011

Использование Int32.TryParse

Например:

var foo = Request.Form["foo"]; 
int fooInt = 0;

if (Int32.TryParse(foo, out fooInt ))     
    doStuff(fooInt); 
else     
    doStuff(null); 
...