Не знаю, откуда эти ошибки - PullRequest
0 голосов
/ 06 марта 2019

Я новичок как в stackoverflow, так и в c #, поэтому я не уверен, что это подходящее место, чтобы поместить это, однако, я хотел бы помочь определить, где ошибки лежат в этой конкретной программе. Эта программа представляет собой форму, которая принимает пользовательский ввод для четырех классов, преобразует их в двойные и выводит среднее значение как в виде числа, так и в виде буквенной оценки.

С точки зрения того, что не так, я получаю сообщения об ошибках в частях «TryParse», говорящих: «Никакая перегрузка для метода« TryParse »не требует 1 аргумента», и когда я пытаюсь назначить буквенную оценку на основе значения среднего » , Там написано «Имя« А »не существует в текущем контексте». Я не знаю, что означают эти ошибки, поэтому мне было интересно, могли бы вы показать мне, где я ошибся. Спасибо!

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 Ответ

1 голос
/ 06 марта 2019

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';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...