2011-03-22 83 views
0

我有一個輸入的整數作爲一個類參數的方法 -轉換而作爲參數傳遞的方法來詮釋

public string OddNumbers(int input) 

,並在我的主程序,我試圖接受來自用戶的,通過一個文本框整數,以及我的輸入字符串轉換爲整數而傳遞參數 -

string odd = od.OddNumbers(int.Parse((TextBox1.Text))).ToString(); 

和我得到以下錯誤:

"System.FormatException: Input string was not in a correct format."

我試圖轉換整數字符串的方法不同,但會導致同樣的錯誤,例如:

string odd = od.OddNumbers(Convert.ToInt32(TextBox1.Text)); 

在指出我要去的地方不對任何幫助嗎?

+0

這種情況下FormatException的一個原因是空字符串被傳遞給int.Parse。如果沒有輸入文本框,就會發生這種情況。 – eulerfx 2011-03-22 22:55:48

+0

WinForms或ASP.NET? – 2011-03-22 22:57:30

回答

1

你想輸入什麼輸入?

我會嘗試一些事情。

1)將入解析命令之前執行對輸入的修整。這將確保數字末尾沒有空白。

2)如果你想接受一個小數,請確保您使用雙。

+0

我想輸入一個普通的整數 – Ron 2011-03-22 23:22:35

+0

你可能要在調試器中拋出它並檢查TextBox1.Text的實際值是什麼。 – CtrlDot 2011-03-23 00:15:25

1

以下應工作假設用戶在文本框中輸入一個有效的整數:

int i = int.Parse(TextBox1.Text); 
string odd = od.OddNumbers(i).ToString(); 

來處理這個另一種可能的方式是使用TryParse方法:

int i; 
if (int.TryParse(TextBox1.Text, out i)) 
{ 
    string odd = od.OddNumbers(i).ToString(); 
} 
else 
{ 
    MessageBox.Show(TextBox1.Text + " is not a valid integer"); 
} 
+0

感謝達林,我試過你的代碼,但仍然得到相同的錯誤。 – Ron 2011-03-22 23:22:11

+0

@ user672096,當你遍歷你的代碼時,TextBox1.Text的值是多少?如果它是'null'或一個空字符串,你會得到這個異常。 – 2011-03-22 23:23:45

1

不要窩功能,它使代碼難以置信地難以調試和維護。

int Number; 

    if (int.TryParse(TextBox1.Text, out Number) == false) 
    { 
     // parsing error 
     Number = -1; 
    } 

    string odd = od.OddNumbers(Number); 
+0

謝謝你們,我犯了一個愚蠢的錯誤 - 我有一個文本框來捕獲數字,但沒有通過計算髮現輸入的整數是奇數還是偶數來觸發事件。有一次,我把方法放在按鈕的點擊事件中,我正在得到想要的結果。感謝所有的投入。 – Ron 2011-03-23 18:18:53

0

一旦我把方法放在click事件中,它發現輸入的整數是奇數還是偶數,它給了我想要的結果。感謝所有的投入。