所以我正在制作一个你输入2个测试分数的程序,如果测试1或测试2具有更高的等级和两个测试的字母等级,它在标签中说。这应该是一个简单的程序,但我得到2个错误:不能隐式地将类型'对象'转换为'字符串'。存在显式转换(您是否错过了演员表?)。我收到了letterGrade1和letterGrade2的错误。这是代码:
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;
}
}
}
如果有人能帮我解决问题,我将不胜感激!
问题已经解决了!谢谢大家。
答案 0 :(得分:1)
将您的代码更改为此...
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;
}
如果消费者需要向下投射对象,则没有理由返回对象。
答案 1 :(得分:1)
您正尝试在这些代码行中将对象分配给字符串:
letterGrade1 = TestScores(test1ScoreDecimal);
letterGrade2 = TestScores(test2ScoreDecimal);
您可以通过两种方式解决它,或者将TestScores的返回类型更改为string。 或者将结果明确地转换为字符串。
letterGrade1 = (string)TestScores(test1ScoreDecimal);
letterGrade2 = (string)TestScores(test2ScoreDecimal);
答案 2 :(得分:0)
您正尝试将TestScores
的结果分配给string
变量,但TestScores
会返回object
...
将TestScores
的返回类型更改为string
或如果您因某种未知原因确实需要返回TestScores(test1ScoreDecimal).ToString()
,请更改为object
答案 3 :(得分:0)
将TestScores
的返回类型更改为string
或使用:
letterGrade1 = (string)TestScores(test1ScoreDecimal);
答案 4 :(得分:-1)
要么使TestScore成为没有构造函数的静态类:
static class TestScores
{
static string Calculate(double score){}
}
或者正确地实例化该课程:
letterGrade1 = new TestScores(test1ScoreDecimal);
letterGrade2 = new TestScores(test2ScoreDecimal);