我試圖將用戶輸入從文本框轉換為整數(在 c# 中),然后從具有該整數索引的數組中輸出一個值。這是我的代碼的一小部分: public Form1(){ InitializeComponent(); string[] Cmaj = new string [7]; Cmaj[1] = "C"; Cmaj[2] = "D"; Cmaj[3] = "E"; Cmaj[4] = "F"; Cmaj[5] = "G"; Cmaj[6] = "A"; Cmaj[7] = "B"; int roman = int.Parse(textBox3.Text); textBox4.Text = Cmaj[roman];}但每次運行此命令時,我都會收到有關“int roman = int.Parse(textBox3.Text);”的錯誤 (下面列出)。我最初使用的是 Convert.ToInt32 而不是 int.Parse,但我看到了有關此主題的另一個問題,該問題說使用解析而不是轉換。然而,這并沒有太大改變。我應該怎么辦?錯誤:mscorlib.dll 中發生“System.FormatException”類型的未處理異常附加信息:輸入字符串的格式不正確。
2 回答

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
您位于組件的構造函數中。因此文本可能為空并導致異常。
您可能想在文本更改或單擊按鈕等事件上添加解析邏輯。
因此,從表單生成器添加事件處理程序,然后將邏輯移至該方法中。
為了更好地理解每個方法何時被調用,我建議您在每個方法的第一個方法上添加一個斷點{
,然后您可以跟蹤事件流。
管理錯誤是一個好主意:您可以用 try...catch 包裝或使用需要 out 變量的 int.TryParse 。

慕田峪4524236
TA貢獻1875條經驗 獲得超5個贊
使用不同的方式
Convert.ToInt32(string);
int val = 0; Int32.TryParse(string, out val );
- 2 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消