Проблема 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++ вы могли видеть код, который вызвал это.