不知道这些错误来自哪里

时间:2019-03-05 23:45:59

标签: c# syntax-error

我对stackoverflow和c#都是陌生的,所以我不确定这是否是放置此内容的适当位置,但是,我希望帮助您确定该特定程序中的错误所在。该程序是一种形式,它接受四个等级的用户输入,将它们转换为两倍,然后将平均值输出为数字和字母等级。

关于出了什么问题,我在“ TryParse”部分出现错误,说“方法'TryParse'的重载不接受1个参数”,并且当我尝试根据平均值计算字母等级时。此处显示“名称'A'在当前上下文中不存在。”我不知道这些错误是什么意思,所以我想知道你们是否可以告诉我我哪里出了问题。谢谢!

namespace Assignment3_attempt_2
    {
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void calculateButton_Click(object sender, EventArgs e)
        {
            double grade1, grade2, grade3, grade4, averageGrade;
            char letterGrade;
            grade1 = double.TryParse(testText1.Text).ToString();
            grade2 = double.TryParse(testText2.Text).ToString();
            grade3 = double.TryParse(testText3.Text).ToString();
            grade4 = double.TryParse(testText4.Text).ToString();
            averageGrade = (grade1 + grade2 + grade3 + grade4) / 4;
            if (100 >= averageGrade && averageGrade>= 90)
                letterGrade = A;
            if (89 >= averageGrade && averageGrade >= 80)
                letterGrade = B;
            if (79 >= averageGrade && averageGrade >= 70)
                letterGrade = C;
            if (69 >= averageGrade && averageGrade >= 60)
                letterGrade = D;
            else letterGrade = F;
            grade.Text = "The average test grade is " + averageGrade + ".";
            letterGradeLabel.Text = "The letter grade is " + letterGrade + ".";
        }
    }
}

1 个答案:

答案 0 :(得分:1)

TryParse接受两个参数,要解析的字符串和将其填充到其中的变量:

double result;
if (double.TryParse("1.0", out result))
{
}

它还会返回一个bool,因此您可以在类似于我的示例的if语句中使用它,而不是在解析失败时抛出该错误。如果要抛出,Parse仅接受一个参数(并返回数字类型)。

此外,您的代码将获得bool结果(如果您使用double,则返回Parse),然后将其转换回字符串(ToString),然后尝试分配doubleToString绝对不应该在那里。

最后一行:

letterGrade = A;

尝试将letterGrade分配给变量 A,该变量不存在(因此出现错误)。如果要分配给字符文字,则必须将其用单引号引起来:

letterGrade = 'A';