[英]Converting Textbox to Integer, Taking String from Array
我試圖將用戶輸入從文本框轉換為整數(在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'類型的未處理異常
附加信息:輸入字符串的格式不正確。
謝謝。
您在組件的構造函數中。 因此,文本可能為空並導致異常。
可能您想在諸如文本更改或按鈕單擊之類的事件上添加解析邏輯。
因此,從表單構建器添加事件處理程序,而不是將邏輯移到該方法中。
為了更好地理解每個方法調用的時間,建議您在每個方法的第一個{
處添加一個斷點,然后可以遵循事件流。
管理錯誤是一個好主意:您可以使用try ... catch進行包裝,也可以使用需要out變量的int.TryParse。
使用不同的方式
Convert.ToInt32(string);
int val = 0; Int32.TryParse(string, out val );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.