簡體   English   中英

Visual Studio Code 無法從 C# 代碼中獲取輸出

[英]Visual Studio Code Cant get output from a C# code

我正在嘗試在 VSC 1.13.1 中運行一個簡單的 Hello World 代碼。

using System;

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

它成功完成執行但不產生任何輸出,即 - 你好,世界!

請任何幫助!

使用代碼運行器。

添加Console.ReadKey() ,因此輸出將一直存在,直到按下該鍵

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

目前 VSCode(或 C# 擴展)似乎存在問題。 其他 StackOverflow 答案表明這在幾年前不起作用,然后它開始起作用,現在(2018 年)它再次不起作用。

我有同樣的問題。 我找到的解決方法是:如果我在調試器中運行我的代碼(調試 > 開始調試),它會顯示輸出。 但是如果我只是正常運行它,它不會。 這是我找到或閱讀的唯一對我有用的解決方法。

另一種選擇是使用 ctrl + F5 而不是 F5 啟動項目,它將保持終端打開,直到您也按下某個鍵

如何在 Visual C++ 中保持控制台窗口打開?

我注意到,此時使用 Code Runner確實也會為 JS 產生一些不一致的行為。
但是,乍一看您還沒有安裝正確的支持插件(這可能是導致您的特定問題的原因):Code Runner 要求:“要運行 C# 腳本,您需要安裝scriptcs ”據說使用Chocolatey - 包Windows 管理器。

目前,禁用擴展,重新啟動 VSCode 然后啟用它 - 修復了當前 JS 的常見問題(並不總是產生輸出)。 也可以在 C# 前面。
注意! 確保在使用 Code Run 運行文件之前手動保存文件

我今天將對此進行測試並添加結果。

測試結果:安裝scriptcsChocolatey后你的HelloWorld.cs文件可以運行,但是不會產生結果。 原因:代碼被視為腳本。 這意味着沒有調用 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() 方法中的示例代碼。

PS 命名空間不能在腳本中使用 - 如果您嘗試將它們與 Code Runner 一起使用,將是您收到的錯誤消息

好吧,Code Runner 是一個運行 C# 腳本的工具。 它會將 main 方法視為普通方法,不會調用它。

您應該只編寫 Main 方法:

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

或者

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

Test.Main();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM