3

次のシグネチャを使用して関数を呼び出す必要があるとします。doStuff(Int32?)

doStuffから読み取った値に渡したいRequest.Form。ただし、渡された値が空白、欠落、または数値でないdoStuff場合は、null引数を渡したいと思います。これによってエラーが発生することはありません。それは操作です。

私は8つのそのような値でこれをしなければならないので、C#で書くためのエレガントな方法が何であるかを知りたいです

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

3 に答える 3

8

整数かどうかを確認したい場合は、解析してみてください。

int value;
if (int.TryParse(Request.Form["foo"], out value)) {
    // it's a number use the variable 'value'
} else {
    // not a number
}
于 2011-06-07T20:41:59.937 に答える
5

あなたは次のようなことをすることができます

int dummy;
if (int.TryParse(foo, out dummy)) {
   //...
}
于 2011-06-07T20:41:32.920 に答える
4

Int32.TryParseを使用する

例えば:

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

if (Int32.TryParse(foo, out fooInt ))     
    doStuff(fooInt); 
else     
    doStuff(null); 
于 2011-06-07T20:42:01.267 に答える