【问题标题】:Visual Studio Code Cant get output from a C# codeVisual Studio Code 无法从 C# 代码获取输出
【发布时间】:2017-07-10 04:31:10
【问题描述】:

我正在尝试在 VSC 1.13.1 中运行一个简单的 Hello World 代码。

using System;

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

它成功完成执行,但没有产生任何输出,即 - Hello, World!

请帮忙!

使用代码运行器。

【问题讨论】:

  • 您是否看到控制台窗口突然弹出并立即消失?如果是这样,我想你可以在Console.WriteLine()下面再添加一条语句,即Console.ReadLine();

标签: c# visual-studio-code vscode-code-runner


【解决方案1】:

添加 Console.ReadKey() ,这样输出就会一直存在,直到按键被按下

   public static void Main()
   {
     Console.WriteLine("Hello, World!");
     Console.ReadKey();
   }

【讨论】:

  • 它仍然没有打印任何东西。可能是 Visual Studio Code 问题。
【解决方案2】:

目前似乎 VSCode(或 C# 扩展)存在问题。其他 StackOverflow 答案表明,这在几年前不起作用,然后它开始起作用,现在(2018 年)它又不起作用了。

我也有同样的问题。我找到的解决方法是:如果我在调试器中运行我的代码(调试 > 开始调试),它会显示输出。但如果我只是正常运行它,它不会。这是我发现或读到的唯一对我有用的解决方法。

【讨论】:

    【解决方案3】:

    另一个选项是使用 ctrl + F5 而不是 F5 来启动项目,它会保持终端打开,直到你按下一个键

    How to keep the console window open in Visual C++?

    【讨论】:

      【解决方案4】:

      我注意到,此时使用 Code Runner 确实也会对 JS 产生一些不一致的行为。
      但是,乍一看您还没有安装正确的支持插件(这可能是您的特定问题的原因): Code Runner 要求:“要运行 C# 脚本,您需要安装 scriptcs” 据说使用Chocolatey - Windows 包管理器。

      目前,禁用扩展,重新启动 VSCode 然后启用它 - 修复了 JS 的当前常见问题(并不总是产生输出)。这也可能在 C# 之前。
      注意! 确保在使用 Code Run 运行文件之前手动保存文件

      我今天将对此进行测试并添加结果。

      测试结果:安装scriptcsChocolatey后你的HelloWorld.cs文件可以运行,BUT不会产生结果。原因:代码被视为脚本。这意味着没有调用 Main() 方法。意思是,你必须这样做。示例:

      using System;
      public class Hello
      {
           public static void Main()
          {
              var message = "hiiii inside => Works"   ;
              Console.WriteLine(message);
              HW();
          }
      
          public static void HW(){
              Console.WriteLine("Hello, World!");
              // the ReadLine will not work because it is only one way solution : ouptut only
              // var a = Console.ReadLine();
              // Console.WriteLine("key pressed: " + a + "Doesn't work");
          }
      }
      
      Hello.Main();
      //can be used like this as well
      var message= "Hey helloooo outside WORKS";
      Console.WriteLine(message);
      

      使用Ctrl+Alt+N开始Ctrl+Alt+M停止(如果挂起)。如果你使用 Console.ReadLine(); 它会挂起- 检查(取消注释)HW() 方法中的示例代码。

      附言命名空间不能在脚本中使用 - 如果您尝试将它们与 Code Runner 一起使用,这将是您收到的错误消息

      【讨论】:

        【解决方案5】:

        嗯,Code Runner 是一个运行 C# 脚本的工具。它将main方法视为普通方法,不会调用它。

        你应该只写 Main 方法:

        System.Console.WriteLine("hello, world");
        

        static class Test
        {
          public static void Main()
          {
            System.Console.WriteLine("hello, world");
          }
        }
        
        Test.Main();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-10-13
          • 2021-06-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-28
          • 1970-01-01
          • 2016-08-26
          相关资源
          最近更新 更多