2012-01-23 83 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

相关问题