Использование int в другом методе

1

Привет, ребята, мне нужно использовать Int-точки из метода ValidateAns в Main метода. Я искал в сети, и люди сказали, что я должен делать ValidateAns (очки), однако это не работает для меня, я не уверен, что я делаю это неправильно или я должен использовать другой способ сделать это

static void Main(string[] args)
{
    const int QuestionNumbers = 10;
    char[] Answear = new char[QuestionNumbers];

    Question[] MCQ = new Question[QuestionNumbers];

    MCQ[0] = new Question(Slaughterhouse);
    MCQ[1] = new Question(Frankenstein);
    MCQ[2] = new Question(Things);
    MCQ[3] = new Question(Jane);
    MCQ[4] = new Question(Kill);
    MCQ[5] = new Question(Beloved);
    MCQ[6] = new Question(Gatsby);
    MCQ[7] = new Question(Catcher);
    MCQ[8] = new Question(Pride);
    MCQ[9] = new Question(Nineteen);

    for (int i = 0; i < QuestionNumbers; i++)
    {
        Console.WriteLine("Question {0}", i + 1);
        Answear[i] = MCQ[i]();
        ValidateAns(i + 1, Answear[i]);
        Console.WriteLine();
        Console.ReadKey();
    }

}

static void ValidateAns(int Nbr, char Ans)
{
    int points= 0;

    switch (Nbr)
    {
        case 1:

            if (Ans == 'b' || Ans == 'B')
            {
                Console.WriteLine("Good Answear");
                points++;
                break;
            }
            else
            {
                Console.WriteLine("Wrong Answer - The right answer was (B)");
                break;
            }
    }
}
  • 0
    Вы можете просто вернуть bool из ValidateAns чтобы указать, был ли ответ правильным. В логике цикла вы добавите 1 к счетчику очков, если значение bool было истинным.
  • 0
    Я думаю, что этот вопрос не должен иметь тег [visual-studio-2012]!
Теги:
methods
integer
visual-studio-2012

2 ответа

1
Лучший ответ

Я реорганизовал членов, которых вы нам дали.

Подумайте об именовании, если вы собираетесь проверить что-то, что вам нужно, чтобы вернуть логическое или bool, чтобы указать, был ли предоставлен ответ, действителен или нет. см. IsValidAnswer(). При написании членов, которые возвращают bool, подумайте об использовании связующего глагола. Is, Has, Will.

когда вы сравниваете char типа, вы можете использовать char.ToUpperInvariant(char val), поэтому вам не нужно сравнивать свой ответ с слишком разными случаями одного и того же символа.

Я надеюсь, что это поможет, проверьте комментарии в коде. Там есть самородок, который вам понравится как разработчик. :) хорошего дня

private static void Main(string[] args)
{
    const int QuestionNumbers = 10;
    var Answer = new char[QuestionNumbers];

    Question[] MCQ = new Question[QuestionNumbers];


    MCQ[0] = new Question(Slaughterhouse);
    MCQ[1] = new Question(Frankenstein);
    MCQ[2] = new Question(Things);
    MCQ[3] = new Question(Jane);
    MCQ[4] = new Question(Kill);
    MCQ[5] = new Question(Beloved);
    MCQ[6] = new Question(Gatsby);
    MCQ[7] = new Question(Catcher);
    MCQ[8] = new Question(Pride);
    MCQ[9] = new Question(Nineteen);

    for (int i = 0; i < QuestionNumbers; i++)
    {
        Console.WriteLine("Question {0}", i + 1);
        Answer[i] = MCQ[i]();

        // return bool since you want to validate an answer.
        var result =  IsValidAnswer(i + 1, Answer[i]);

                            // this is an if/else conditional statment, its called a ternary expression
        Console.WriteLine(result ? "Answer is valid" : "Answer is not valid");
        Console.WriteLine();
        Console.ReadKey();
    }
}


private static bool IsValidAnswer(int Nbr, char Ans)
{
    // if you really wanted to use a method. 
    var correctAnswer = default(char);
    switch (Nbr)
    {
        case 1:
            correctAnswer = 'b';
            break;
        case 2:
            //.. 
            break;
    }
    return char.ToUpperInvariant(Ans) == char.ToUpperInvariant(correctAnswer);
}
  • 0
    Ответ очень помог, спасибо.
0

определите свою функцию как

static int ValidateAns(int Nbr, char Ans)

и вернуть значение точек с return points;

затем назовите его чем-то вроде

int p=ValidateAns(i + 1, Answear[i]);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню