Почему окно консоли закрывается сразу после того, как отображается мой вывод? - PullRequest
147 голосов
/ 15 января 2012

Я изучаю C #, следуя инструкциям в MSDN .

Теперь я только что попробовал Пример 1 ( здесь - это ссылка на MSDN ), и я столкнулся с проблемой: почему консоль закрытие окна сразу после того, как отобразился мой вывод?

using System;

public class Hello1
{
    public static int Main()
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}

Ответы [ 21 ]

3 голосов
/ 15 января 2012

Код закончен, для продолжения необходимо добавить это:

Console.ReadLine();

или

Console.Read();
1 голос
/ 05 апреля 2019

Вот способ сделать это без участия Console:

var endlessTask = new TaskCompletionSource<bool>().Task;
endlessTask.Wait();
1 голос
/ 11 апреля 2019

Я немного опоздал на вечеринку, но: в проектах Visual Studio 2019 для .NET Core консоль не закрывается автоматически по умолчанию.Вы можете настроить поведение через меню Инструменты → Параметры → Отладка → Общие → Автоматически закрыть консоль, когда отладка останавливается.Если окно консоли закрывается автоматически, проверьте, не указан ли упомянутый параметр.

То же самое относится к консольным проектам нового стиля .NET Framework:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net472</TargetFramework>
  </PropertyGroup>

</Project>

Старый стиль.Проект NET Framework по-прежнему безоговорочно закрывает консоль в конце (начиная с Visual Studio 16.0.1).

Ссылка: https://devblogs.microsoft.com/dotnet/net-core-tooling-update-for-visual-studio-2019-preview-2/

0 голосов
/ 14 декабря 2018

это ответ async в консольном приложении на C #?

все, что угодно в консольном приложении, никогда не использует await, а вместо этого использует theAsyncMethod().GetAwaiter().GetResult();,

пример

var result = await HttpClientInstance.SendAsync(message);

становится

var result = HttpClientInstance.SendAsync(message).GetAwaiter().GetResult();

0 голосов
/ 23 сентября 2013

Добавьте следующее до возврата 0:

system("PAUSE");  

Это печатает строку, чтобы нажать клавишу, чтобы закрыть окно.Это будет держать окно вверх, пока вы не нажмете клавишу ввода.Мои студенты добавили его во все свои программы.

0 голосов
/ 16 июня 2016

Вы можете решить это очень простым способом, просто вызвав ввод. Однако, если вы нажмете Enter, консоль снова отключится. Просто используйте это Console.ReadLine(); или Console.Read();

0 голосов
/ 23 июля 2014

Согласно моей озабоченности, если мы хотим стабилизировать ВЫХОД КОНСОЛЬНОГО ПРИЛОЖЕНИЯ, до закрытия вывода отображается ИСПОЛЬЗОВАНИЕ, метка: после MainMethod и метка goto; до завершения программы

В программе.

например:

static void Main(string[] args)
{
    label:

    // Snippet of code

    goto label;
}
0 голосов
/ 04 октября 2015

Я всегда добавляю следующий оператор в консольное приложение (создайте фрагмент кода для этого, если хотите)

Console.WriteLine("Press any key to quit!");
Console.ReadKey();

Это помогает, когда вы хотите экспериментировать с различными концепциями через консольное приложение.

Ctr + F5 заставит Консоль остаться, но вы не можете отлаживать!Все консольные приложения, которые я написал в реальном мире, всегда неинтерактивны и запускаются планировщиком, таким как рабочая станция TWS или CA, и не требуют чего-то подобного.

0 голосов
/ 24 февраля 2015

Чтобы упростить то, что говорят другие: Используйте Console.ReadKey();.

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

Источник: я использую его в своих программах для консольных приложений.

0 голосов
/ 26 января 2015

, если ваша программа требует, чтобы вы продолжили нажимать клавишу ввода, как если бы вы вводили значение и продолжали, затем добавьте новый double или int и введите write перед retunr (0);scanf_s ("% lf", & переменная);

...