如何判断Request.Form中的值是否为数字?(C#)

Dan*_*don 3 c# asp.net string request.form string-parsing

假设我必须使用以下签名调用函数:doStuff(Int32?)

我想传递给doStuff从中读取的值Request.Form.但是,如果传入的值为空,缺少或不是数字,我希望doStuff传递一个null参数.这不应该导致错误; 这是一个操作.

我必须用八个这样的值来做这个,所以我想知道用C#编写的一种优雅方式是什么

var foo = Request.Form["foo"];
if (foo is a number)
    doStuff(foo);
else
    doStuff(null);
Run Code Online (Sandbox Code Playgroud)

con*_*tor 8

如果要检查它是否为整数,请尝试解析它:

int value;
if (int.TryParse(Request.Form["foo"], out value)) {
    // it's a number use the variable 'value'
} else {
    // not a number
}
Run Code Online (Sandbox Code Playgroud)


Pau*_*tos 5

你可以做点什么

int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}
Run Code Online (Sandbox Code Playgroud)