2012-01-23 50 views
0

我在一個介紹級編程課,我必須做一個年級計算器。有2個家庭作業成績,2個測驗成績和1個最終成績。家庭作業價值25%,測驗價值35%,最終價值40%。我該如何解決這個錯誤? 「InvalidCastException未處理」

我希望能夠輸入學生的成績和姓名,當我點擊「計算」按鈕時,將課程成績和學生姓名放在標籤底部。

看來我在轉換時遇到了某種問題。我嘗試過使用整數,並且遇到同樣的問題。我真的可以使用一些幫助,請!

下面是按鈕單擊代碼:

private void btnCalculate_Click(object sender, RoutedEventArgs e) 
    { 
     //Defining, converting, and assigning variables 
     string studentName = Convert.ToString(tbName); 
     double hw1 = Convert.ToDouble(tbHW1); 
     double hw2 = Convert.ToDouble(tbHW2); 
     double quiz1 = Convert.ToDouble(tbQuiz1); 
     double quiz2 = Convert.ToDouble(tbQuiz2); 
     double final = Convert.ToDouble(tbFinal); 
     const double HWWeight = 0.25; 
     const double quizWeight = 0.35; 
     const double finalWeight = 0.40; 
     double studentGrade; 

     //Grade Calculation 
     studentGrade = ((hw1 + hw2) * HWWeight) + ((quiz1 + quiz2) * quizWeight) + (final * finalWeight); 

     //Display results 
     lblLeftResult.Content = studentName; 
     lblRightResult.Content = studentGrade;   

    } 
+0

什麼行導致異常?什麼樣的輸入? – Oded

回答

9

我認爲tbName等都是文本框......在這種情況下,你可能想是這樣的:

string studentName = tbName.Text; 
double hw1 = double.Parse(tbHW1.Text); 
// etc 

換句話說,不要不要嘗試轉換文本框本身 - 轉換文本框的Text

+2

*我認爲tbName等是TextBoxes *並且所有人都嘲笑匈牙利符號 - 看,它有它的用途! :P – Yuck