首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >填充参数时出现"InvalidCastException was unhandled“

填充参数时出现"InvalidCastException was unhandled“
EN

Stack Overflow用户
提问于 2016-10-13 16:21:28
回答 2查看 63关注 0票数 0

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

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

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

代码语言:javascript
复制
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));

我该如何解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2016-10-13 16:30:17

使用TryParse而不是Convert方法。这将阻止您拥有"InvalidCastExceptions“。此外,您需要使用TextBoxText属性,而不是TextBox本身。就像这样试一试:

代码语言:javascript
复制
int studentId;
double quiz2;

if (int.TryParse(tb_studentID.Text, out studentId) && double.TryParse(tb_quiz2.Text, out quiz2) && 
...) {
     StudentInfo compute = new StudentInfo(studentId, quiz2 ...);
}
票数 1
EN

Stack Overflow用户

发布于 2016-10-13 16:28:40

  1. 你使用的不是C# 2010,而是Visual Studio2010
  2. 问题不在于构造函数,而在于Visual Studio2010不能将任何变量转换为你想要转换的类型。尝试将所有参数1转换为1,并查看问题所在。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40015796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档