2011-06-07 164 views
3

假設我必須調用具有以下簽名的函數:(?Int32)已 doStuff如何判斷Request.Form中的值是否是一個數字? (C#)

我想傳遞給doStuff是從Request.Form讀取值。但是,如果傳入的值爲空,缺少或不是數字,我希望doStuff傳遞一個空參數。這不應該導致錯誤;這是一個操作。

我有八個這樣的值要做到這一點,所以我想知道什麼是寫在C#

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

你需要檢查INT,小數等?什麼算作一個數字? – alexn 2011-06-07 20:41:10

+0

在我引用的例子中,它需要是一個'Int32',但是這個問題適用於不同的數字類型。 – 2011-06-07 20:45:40

回答

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

e.g:

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

if (Int32.TryParse(foo, out fooInt))  
    doStuff(fooInt); 
else  
    doStuff(null); 
相關問題