填写参数时,获取“InvalidCastException是未处理的错误”

时间:2016-10-13 08:21:28

标签: c#

我正在做一个计算测验和考试成绩的程序,它应该使用Windows窗体显示等效的成绩和字母(即95 = A)。

我创建了一个结构,它包含学生编号,学生姓名,4个测验和1个考试成绩。在这个结构上,我还创建了封装,方法和构造函数。

此结构位于不同的文件/类上。我创建了一个按钮,用于运行计算分数的方法。这是我的问题,每当我按下“计算”按钮时,我为这个结构创建的构造函数都会出错。

StudentInfo compute = new StudentInfo(Convert.ToInt32(tb_studentID),
Convert.ToString(tb_studentName),
Convert.ToDouble(tb_quiz1), Convert.ToDouble(tb_quiz2),
Convert.ToDouble(tb_tp1), Convert.ToDouble(tb_tp2),
Convert.ToDouble(tb_exam));

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用TryParse代替Convert方法。这将阻止您拥有" InvalidCastExceptions"。此外,您需要使用Text的{​​{1}}属性,而不是TextBox本身。试试这样:

TextBox

答案 1 :(得分:0)

  1. 您没有使用C#2010,而是使用Visual Studio 2010
  2. 问题不在构造函数中,而是在转换中
  3. 您无法将任何变量强制转换为您尝试投射它的类型。尝试逐个转换所有参数并查看问题所在。