Проблема C#: программа завершает себя, когда она не должна

Я делаю консольное приложение на C# для своего курса в колледже, и у меня возникла проблема, когда я (или кто-либо еще на курсе) не знаю, в чем дело. На самом деле репетитор не уверен, почему это происходит. Я покажу вам часть кода, чтобы узнать, может ли кто-нибудь помочь. Вероятно, хорошая идея упомянуть, что я новичок в C# и программировании в целом.

  static void Main(string[] args)
    {
        string userName = GetName();
        int gradelevel = level();
        double random1 = 0;
        double random2 = 0;
        int userChoice = menu();
        int numberofquestions = 0; 
        string Message;
        int userScore = 0;

        do
        {
            if ((gradelevel == 1) && (userChoice == 1))//ADDITION LEVEL 1
            {

                generateSingleDigit(ref random1, ref random2);
                double userAnswer = additionQuestion(ref random1, ref random2);
                double Correctanswer = random1 + random2;
                Message = checkAnswer(userAnswer, Correctanswer);

                if (userAnswer == Correctanswer)
                {
                    generatePositiveResponse();
                    userScore++;
                }
                else
                {
                    int numberofAttempts = 1;

                    do
                    {
                        generateNegativeResponse();
                        userAnswer = additionQuestion(ref random1, ref random2);
                        Message = checkAnswer(userAnswer, Correctanswer);
                        numberofAttempts++;
                    } while ((numberofAttempts < 3) && (Message == "Incorrect"));
                    Console.WriteLine("The correct answer is {0}", Correctanswer);
                }
            }


                numberofquestions++;
        } while (numberofquestions <= 9);
           percentage(ref userScore); ` 

У меня проблема в том, что после того, как пользователь завершил 10 вопросов, результаты процентного метода кратковременно вспыхивают, а затем приложение закрывается. Нет "Нажмите любую клавишу, чтобы продолжить", что я видел в других приложениях, которые я сделал.

Я был бы очень признателен за любую помощь в этом. Спасибо

3 ответа

Решение

Если вы добавите Console.ReadLine() в конце окно останется открытым, пока вы не нажмете клавишу ввода. В противном случае, как только он будет завершен, он закроет командное окно.

Похоже, вам не хватает Console.ReadLine() в конце вашей программы. Когда вы запускаете консольное приложение в Visual Studio, это нормально, когда окно закрывается после завершения программы, если нет кода (например, Console.ReadLine()) чтобы программа продолжала работать.

Если вы запустили программу непосредственно из окна DOS, программа все равно будет закрыта, но окно останется открытым, вы просто вернетесь в командную строку снова.

Нет "Нажмите любую клавишу, чтобы продолжить", что я видел в других приложениях, которые я сделал.

С чего бы это? Этого не произойдет, если вы не напишите код, чтобы это произошло:

Console.WriteLine("Press any key to continue");
Console.ReadKey(true);

Visual Studio обычно помещал код для этого в шаблон по умолчанию для программ на C++, но я никогда не видел его для C#, и даже со старыми программами на C++ вы могли видеть код, который вызвал это.

Другие вопросы по тегам