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

3
假设我必须调用以下签名的函数: doStuff(Int32?)
我想传递一个值给doStuff,这个值是从Request.Form读取的。但是,如果传入的值为空、缺失或不是数字,则我希望将null参数传递给doStuff。这不应该导致错误;这是一种操作。
我必须对八个这样的值进行操作,因此我想知道在C#中编写优雅的方法是什么?
var foo = Request.Form["foo"];
if (foo is a number)
    doStuff(foo);
else
    doStuff(null);

你需要检查整数、小数等吗?什么被视为数字? - alexn
在我举的例子中,它需要是 Int32,但这个问题适用于不同的数字类型。 - Vivian River
3个回答

8

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

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

5

您可以这样做

int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}

4

使用Int32.TryParse

例如:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接