2012-01-06 47 views
1

我有要在文本中顯示數字的功能。在文本中顯示一個數字

if (all > 120) 
{ 
    int w_m = 120 - il_os; 
    string text = "free room: {0}", w_m; 
    ModelState.AddModelError("", text); 
} 

但我有一個錯誤:

Error 1 A local variable named 'w_m' is already defined in this scope

如何與ModelState.AddModelError文本顯示號碼?

回答

3

你錯過了有一個功能:

string text = string.Format("free room: {0}", w_m); 

佔位符在字符串中不一種語言功能!現在,您再次聲明變量w_m,作爲string。這一個特點:

int a, b, c; 
0

您的錯誤與在文本中顯示數字無關。您正在聲明一個已經在該範圍內的變量(w_m)。

w_m必須在您的if條款之前聲明。如果您正在尋找重用你w_m變量,然後改變上述行:

w_m = 120 - il_os; 

至於把你的串號,你可以做兩件事情:

string text = "free room: " + w_m.ToString(); 

或者

string text = string.Format("free room: {0}", w_m); 
3

你需要爲了以這種方式使用String.Format來格式化字符串

string text = String.Format("free room: {0}", w_m); 

這樣做也將消除您看到的錯誤,因爲您正在使用的當前語法導致w_m重新聲明爲本地的string

+1

他已將變量w_m一次聲明爲int(int w_m = 120 - il_ox;),然後再次作爲字符串聲明。他將變量'text'聲明爲一個字符串,然後將其值初始化爲「free room:{0}」。然後在同一行中,將w_m聲明爲另一個字符串變量。 – 2012-01-06 17:32:32

+0

@JeffReddy謝謝,更新了答案 – JaredPar 2012-01-06 17:41:52

0
string text = string.Format("free room: {0}", w_m); 

在您的代碼編譯器認爲w_m是另一個聲明,如:

string a, b; 
0

使用String.Format這將是這樣使用:

string text = String.Format("free room: {0}", w_m); 

編輯:毆打它,應該知道找到MSDN鏈接將花費我這些珍貴秒。