我正在关注本教程https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169?l=83b9cRQIC_9706218949 尽管我已经复制了本教程中的确切代码,但仍无法使程序正常工作。
我有Ubuntu 16.04,所以我正在使用Visual Studio Code。我有.NET SDK版本2.1.403。
这是我的程序的代码:
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语句中的命令,但是什么也不会发生。我不知道问题出在哪里。
有关调试的更新 在调试时,Console.Write -line旁边会出现一个灯泡。我不确定那是什么意思。 Picture of the debugging result 更新 通过终端运行该程序时,该程序正常运行。所以我想我必须将终端与Visual Studio Code一起使用。但是使用调试器会很好,所以如果有人知道我如何使它工作,请告诉我。
答案 0 :(得分:2)
我怀疑Console.Write
未被刷新(Linux上的stdout是未缓冲的,仅在行尾刷新)。
尝试使用Console.Out.Flush()
作为解决方法。不过,它并不漂亮。