【发布时间】:2021-05-17 13:16:00
【问题描述】:
我在有限的for loop 中有一个Console.ReadLine(),它永远不会结束阅读。
我在 Linux Mint 上使用 VS Code。我按 F5 执行。
using System;
class Person
{
public string Name { get; set;}
public override string ToString()
{
return "My name is " + Name;
}
}
class Program
{
static void Main(string[] args)
{
int n = 3;
Person[] p = new Person[n];
for (int i = 0; i < n; i++)
{
p[i] = new Person()
{
Name = Console.ReadLine()
};
Console.WriteLine("I just read " + p[i]);
}
for (int i = 0; i < n; i++)
{
Console.WriteLine(p[i].ToString());
}
}
}
我希望输入三个名称,然后输出它们。
我通过输入名称然后按 Enter 来输入。
问题是我可以一直输入,Console.WriteLine("I just read " + p[i]); 永远不会被执行。这发生在调试控制台中。
【问题讨论】:
-
您可能会遇到异常并退出程序。
-
你能不能在读完这一行之后添加一条消息,或者一个断点,看看它是否真的在读你的输入?
-
@Martheen 在
p[i] = new Person(Console.ReadLine());之后添加了Console.WriteLine("I just read " + p[i]);,它不输出任何内容。 -
我认为你应该在终端而不是调试控制台上输入
-
您是否尝试添加步骤 (
string name = Console.ReadLine(); p[i] = new Person{Name = name};)?用断点查看name是否分配正确?
标签: c# linux visual-studio-code