我对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 + ".";
}
}
}
答案 0 :(得分:1)
TryParse
接受两个参数,要解析的字符串和将其填充到其中的变量:
double result;
if (double.TryParse("1.0", out result))
{
}
它还会返回一个bool
,因此您可以在类似于我的示例的if语句中使用它,而不是在解析失败时抛出该错误。如果要抛出,Parse
仅接受一个参数(并返回数字类型)。
此外,您的代码将获得bool
结果(如果您使用double
,则返回Parse
),然后将其转换回字符串(ToString
),然后尝试分配该到double
。 ToString
绝对不应该在那里。
最后一行:
letterGrade = A;
尝试将letterGrade
分配给变量 A
,该变量不存在(因此出现错误)。如果要分配给字符文字,则必须将其用单引号引起来:
letterGrade = 'A';