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

发布于 2024-11-14 11:53:03 字数 353 浏览 6 评论 0原文

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

我想将从 Request.Form 读取的值传递给 doStuff。但是,如果传入的值是空白、缺失或不是数字,我希望向 doStuff 传递 null 参数。这不应导致错误;这是一项手术。

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

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

Suppose I must call a function with the following signature:
doStuff(Int32?)

I want to pass to doStuff a value that is read from Request.Form. However, if the value passed in is blank, missing, or not a number, I want doStuff to be passed a null argument. This should not result in a error; it is a operation.

I have to do this with eight such values, so I would like to know what is an elegent way to write in C#

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不气馁 2024-11-21 11:53:03

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

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

If you want to check whether or not it's an integer, try parsing it:

int value;
if (int.TryParse(Request.Form["foo"], out value)) {
    // it's a number use the variable 'value'
} else {
    // not a number
}
屌丝范 2024-11-21 11:53:03

你可以做类似的事情

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

You can do something like

int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}
梦明 2024-11-21 11:53:03

使用 Int32.TryParse

例如:

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

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

Use Int32.TryParse

e.g:

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

if (Int32.TryParse(foo, out fooInt ))     
    doStuff(fooInt); 
else     
    doStuff(null); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文