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

本文关键字:是否 数字 Form 何判断 判断 Request | 更新日期: 2023-09-27 17:58:48

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

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

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

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

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

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

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

您可以执行类似的操作

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

使用Int32.TryParse

例如:

var foo = Request.Form["foo"]; 
int fooInt = 0;
if (Int32.TryParse(foo, out fooInt ))     
    doStuff(fooInt); 
else     
    doStuff(null);