为什么我的字符串集合(lst
)不出现在控制台中? Visual Studio不会显示任何明显的错误。请指出我的错误。
public partial class Home : Page {
public Home() {
InitializeComponent();
}
// ...
private void Button_Click(object sender, EventArgs e) {
Home.ABC();
MessageBox.Show("hello world");
}
static void ABC() {
List<string> lst = new List<string>();
OpenFileDialog opendialog = new OpenFileDialog();
opendialog.Multiselect = true;
bool? dialogResult = opendialog.ShowDialog();
if (dialogResult.HasValue && dialogResult.Value) {
foreach (var file in opendialog.Files) {
Stream fileStream = file.OpenRead();
using (StreamReader reader = new StreamReader(fileStream)) {
while (!reader.EndOfStream) {
string line=reader.ReadLine();
lst.Add(line);
}
Console.WriteLine(lst);
}
}
}
}
}
消息框显示hello world
,因此函数ABC()
也会运行?
答案 0 :(得分:1)
如上所述,您没有使用控制台应用程序,因此您无法写入控制台。
创建RichTextBox并使用
foreach(var line in lst)
{
RichTextBoxName.AppendText(line)
}
foreach(var line in lst)
{
RichTextBoxName.AppendText(line + "\n") //adds a new line after each string
}
答案 1 :(得分:0)
您无法在标准Winforms应用程序中使用控制台窗口。它使用Application.Run启动并显示默认对话框,而不是控制台。
为了显示控制台窗口AS WELL作为winforms对话框,您必须使用Win32 API手动创建控制台窗口。
见这里:
How do I show a console output/window in a forms application?
答案 2 :(得分:0)
控制台流输出未设置为可见的控制台窗口,因此Console.Write接受文本,但不会在任何地方显示任何内容。
请尝试使用Debug.WriteLine。