我的考试成绩程序中的错误
本文关键字:错误 程序 考试 我的 | 更新日期: 2023-09-27 18:36:56
所以我正在制作一个程序,您可以在 2 个测试分数中输入,并在标签中显示测试 1 或测试 2 是否具有更高的成绩和两个测试的字母等级。这应该是一个简单的程序,但我收到 2 个错误:无法将类型"对象"隐式转换为"字符串"。存在显式转换(您是否缺少强制转换?我收到字母等级 1 和字母等级 2 的错误。这是代码:
private object TestScores(decimal Test)
{
string testGrade = null;
//Perform the function
if (Test >= 90) {
testGrade = "A";
} else if (Test >= 80) {
testGrade = "B";
} else if (Test >= 70) {
testGrade = "C";
} else if (Test >= 60) {
testGrade = "D";
} else if (Test < 60) {
testGrade = "F";
}
//return the answer
return testGrade;
}
}
}
如果有人能帮我解决问题,我将不胜感激!
问题解决了!谢谢大家。
将你的代码更改为这个...
private string TestScores(decimal Test)
{
string testGrade = null;
//Perform the function
if (Test >= 90) {
testGrade = "A";
} else if (Test >= 80) {
testGrade = "B";
} else if (Test >= 70) {
testGrade = "C";
} else if (Test >= 60) {
testGrade = "D";
} else if (Test < 60) {
testGrade = "F";
}
//return the answer
return testGrade;
}
如果使用者需要向下投射对象,则没有理由返回该对象。
您正在尝试将对象分配给以下代码行中的字符串:
letterGrade1 = TestScores(test1ScoreDecimal);
letterGrade2 = TestScores(test2ScoreDecimal);
您可以通过两种方式解决它,要么将 TestScore 的返回类型更改为字符串。或将结果显式转换为字符串。
letterGrade1 = (string)TestScores(test1ScoreDecimal);
letterGrade2 = (string)TestScores(test2ScoreDecimal);
您正在尝试将TestScores
的结果分配给string
变量,但TestScores
返回一个object
...
将TestScores
的返回类型更改为string
或者如果您确实需要出于某种未知原因返回object
,请更改为TestScores(test1ScoreDecimal).ToString()
将
TestScores
的返回类型更改为string
或使用:
letterGrade1 = (string)TestScores(test1ScoreDecimal);
要么让 TestScore 成为一个没有构造函数的静态类:
static class TestScores
{
static string Calculate(double score){}
}
或者正确实例化类:
letterGrade1 = new TestScores(test1ScoreDecimal);
letterGrade2 = new TestScores(test2ScoreDecimal);