Почему Console.WriteLine не работает в коде Visual Studio?

У меня есть скрипты и кодернер, установленные в коде Visual Studio. Когда я запускаю простую программу, которая включает в себя Console.WriteLine("Test") Я не вижу никакого выхода. Программа, кажется, работает успешно и завершается с кодом 0.

Какие-либо предложения?

Вот весь код на случай, если кому-то будет интересно:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Test");
    }
}

7 ответов

Решение

В файле launch.json должно быть поле с именем 'console':

Меняя его с:

  "console": "internalConsole",

Для того, чтобы:

  "console": "externalTerminal",

исправил это для меня.

Если вы просто пытаетесь запустить файл cs без проекта и т. Д., Проблема заключается в том, что обработчик кода обрабатывает файл как скрипт. Таким образом, основной метод на самом деле не вызывается так, как при запуске консольного приложения.

Поэтому решение состоит в том, чтобы сделать ваш метод main общедоступным и добавить вызов Program.Main(null); после определения класса. Это решение не требует какого-либо файла конфигурации launch.json или изменений конфигурации. Обратите внимание, что вызов Program.Main после определения класса действительно показывает ошибку в коде VS, но он прекрасно работает в коде запуска. Смотрите блок кода ниже.

using System;
class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Test");
    }
}

Program.Main(null);

Я нашел ответ на это здесь: /questions/41759576/visual-studio-code-cant-poluchaet-vyivod-iz-koda-c/41759590#41759590

Он покажет ваш вывод, если вы нажмете Ctrl+F5. Вы получите вывод в окне консоли. Другое решение, если вы напишите Console.ReadLine(); после console.writeline, оно останется открытым окном консоли, пока вы не нажмете какую-либо клавишу.

Альтернативой может быть использование Debug.WriteLine("test") вместо этого, он записывает непосредственно в окно. Необходимо использовать System.Diagnostics

Вам необходимо добавить любой из следующих строк кода

Console.Readline()
Console.Read()
Console.ReadKey()

пример:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Test");
        Console.ReadLine();
    }
}

Код скомпилировался и затем запустился, но он не был очень быстрым, и консольное приложение закрылось после выполнения. Чтобы этого не случилось, вам нужно добавить еще один метод, например:

  • Console.Read ();

или же

  • Console.ReadLine ();

(Строка означает перевод строки, это означает, что курсор перемещается на следующую строку слева).

Таким образом, приложение закроется, если вы нажмете клавишу "Ввод" на клавиатуре.

Вы должны сделать это

Console.WriteLine("Hello");
string name = Console.ReadLine();
Другие вопросы по тегам