我的考试成绩程序中的错误

本文关键字:错误 程序 考试 我的 | 更新日期: 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);