C# 只执行程序的一部分
我正在学习这个教程 虽然我复制了教程中的代码,但我无法让程序正常工作 我有Ubuntu 16.04,所以我使用的是Visual Studio代码。我有.NETSDK版本2.1.403 以下是我的程序代码:C# 只执行程序的一部分,c#,.net,ubuntu,visual-studio-code,C#,.net,Ubuntu,Visual Studio Code,我正在学习这个教程 虽然我复制了教程中的代码,但我无法让程序正常工作 我有Ubuntu 16.04,所以我使用的是Visual Studio代码。我有.NETSDK版本2.1.403 以下是我的程序代码: using System; namespace Decision { class Program { static void Main(string[] args) { Console.WriteLine("
using System;
namespace Decision
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Miina's Big Giveaway");
Console.Write("Choose a door: 1, 2 or 3 ");
string userValue = Console.ReadLine();
if (userValue == "1")
{
string message = "You won a new car!";
Console.WriteLine(message);
}
Console.ReadLine();
}
}
}
问题是程序没有写“选择一扇门…”这一行。只有当我停止执行程序时,调试终端中才会出现“选择门…”一行
如果我在程序仍在运行时尝试键入“1”,则不会发生任何事情,尽管它应该通过if语句中的命令。我想不出问题出在哪里
调试更新
当我调试时,控制台旁边会出现一个灯泡。我不知道那是什么意思。
更新
当我通过终端运行程序时,程序运行正常。所以我想我必须使用带有Visual Studio代码的终端。但使用调试器会很好,所以如果有人知道我如何让它工作,请告诉我。我怀疑没有刷新
Console.Write
(Linux上的stdout是无缓冲的,并且只在行尾刷新)
尝试
Console.Out.Flush()
作为解决方法。不过,它并不漂亮。我怀疑没有刷新Console.Write
(Linux上的stdout是无缓冲的,只在行尾刷新)
尝试
Console.Out.Flush()
作为解决方法。不过它并不漂亮。你试过调试它吗?逐行检查代码以查看它实际执行的操作?只是为了确保行Miina的大赠品
显示正确?您可能正在运行较旧版本的代码?进行重建。键入“1”后按Enter键了吗?@MetaColon-他说他使用的是SDK 2.1.403,这是.net core,不是mono。你试过调试它吗?逐行检查代码以查看它实际执行的操作?只是为了确保行Miina的大赠品
显示正确?您可能正在运行较旧版本的代码?重新生成。键入“1”后按Enter键了吗?@MetaColon-他说他使用的是SDK 2.1.403,即.net core,而不是mono。什么是刷新?我将Console.Write()更改为Console.Out.Flush(),并得到一个错误“方法'Flush'不重载1个参数”。该错误表明您正在将参数传递给Flush()
;它不需要任何…刷新是什么意思?我将Console.Write()更改为Console.Out.Flush(),并得到一个错误“方法'Flush'不需要重载1个参数”。该错误表明您正在将参数传递给Flush()
;不需要任何。。。