我有這樣的代碼在C#:將int轉換爲文本框文本?
int i;
i += textBox1.Text;
textBox1.Text = i;
但它給我的這兩個最後的代碼錯誤。我如何解決它?我究竟做錯了什麼?
爲什麼這個問題得票低?這是一個非常好的問題。 :'(
我有這樣的代碼在C#:將int轉換爲文本框文本?
int i;
i += textBox1.Text;
textBox1.Text = i;
但它給我的這兩個最後的代碼錯誤。我如何解決它?我究竟做錯了什麼?
爲什麼這個問題得票低?這是一個非常好的問題。 :'(
您正在嘗試做一個String
的Int
你必須Convert
的String
到Int
將這個代碼:
i = Convert.ToInt32(textBox1.Text);
textBox1.Text = i.ToString();
你也可以Parse
它,並做TryParse
。
如果你想爲int以外的東西做這件事,你可以改變任何你想要的。例如:
Convert.ToDouble
它轉換爲Double
,代替Int
。
我想你的意思是'Convert.ToInt32' –
謝謝你指出。編輯! – Dozer789
試試這個:
i+= Convert.ToInt32(textBox1.Text);
textBox1.Text = i.ToString();
有在Convert
類其它功能像ToInt64
,ToDouble
等,還可能要使用TryParse
,如果您不能確定在文本框中總是包含數:
var x = 0;
if(int.TryParse(textbox1.Text, out x))
{
i+=x;
}
你不能一個字符串,除非你解析它添加到int
並且取得了成功你也可以打電話給.ToString()
上i
時。將其分配給文本框的文本。順便考慮使用int.TryParse()
,或者至少處理無效輸入。
你也可以試試這個;
int xout;
if(int.TryParse(textbox1.Text, out xout)){
i += xout;
textbox1.Text = i.ToString();
}
Convert.ToInt32和int.TryParse之間的不同: 如果文本沒有整串Convert.ToInt32拋出和異常,但int.TryPary不會
如果您嘗試使用+=
未初始化變量,你會得到一個編譯器錯誤:
The variable i might not be initialized before accessing.
所以首先你需要初始化變量,只需將其分配給當你定義它:
int i = 0;
然後你試圖將一個字符串添加到integer.c的#是強類型language.Therefore你可以不爲整數分配給一個字符串directly.To爲此,首先應該轉換字符串整數,則追加到您的實際變量:
int i += Convert.ToInt32(textBox1.Text);
你想分配給string.To整數第三行做到這一點,你應該轉換回你的整型變量的字符串。您可以使用.ToString
方法或Convert.ToString
textBox1.Text = i.ToString();
示例代碼
int i;
i += textBox1.Text;
textBox1.Text = i;
存在一些問題。
首先,由於類型不匹配,你會得到一個編譯器錯誤(實際上是兩個)。 i
是int
; textBox
.Text is a string. There is no implicit cast or conversion from
string to
int`因此編譯器會引發錯誤。
其次,修復了上述問題後,由於i
未被初始化,您將得到另一個編譯器錯誤。 C#規範要求變量在第一次使用之前被顯式賦值。類似於i += j;
就是i = i + j;
的簡寫。由於您尚未爲i
賦值,編譯器會引發錯誤。
您可能注意到,你看到的編譯器錯誤
error CS0030: Cannot convert type 'string' to 'int'
error CS0029: Cannot implicitly convert type 'string' to 'int'
和
error CS0165: Use of unassigned local variable 'i'
相當描述的問題。閱讀編譯器錯誤消息時,解決方案應該非常明顯。你想要做的是一樣的東西:?什麼是字符串和字符串之間的區別]的
int value ;
bool parsed = int.TryParse(textBox1.Text,out value) ;
if (!parsed) throw new InvalidOperationException("you should have client-side validators on textBox1") ;
i += value ;
可能重複(http://stackoverflow.com/questions/7074/whats-the-difference-between-string字符串) – Dozer789
這不會編譯,因爲你沒有初始化'我'。 –
由於您沒有說明您的錯誤是什麼,並且代碼存在根本性問題,因此您最有可能獲得降薪。變量初始化主要。注意:我沒有倒退,只是我的觀察。 –