我是C#的新手,我觉得Java很舒服,因此我对C#(它的LINQ和SQL语法的巨大粉丝)感到非常满意。 Anywho,我是异步调用的新手,我想知道以下行为是否与此相关。
所以在我的代码中我有以下内容:
string sentence;
Console.WriteLine("Enter your sentence: {0}", sentence = Console.ReadLine());
Console.WriteLine("Sentence is: {0}", sentence);
Console.ReadKey();
这很简单,我只是试图看看是否可以在要求它的同一提示中插入输入的读数。但是,我注意到代码运行,但它是一个空白屏幕,我可以输入我的输入,然后它会显示我输入的内容,并等待按键点击以关闭CMD窗口。
我想知道的是:这是一种异步行为 - 如果不是,那么它是什么?如果是这样,是否可以将ReadLine()置于同一个Console.WriteLine()中,或者我必须将它们作为通常的两条独立行进行处理?
答案 0 :(得分:2)
这里没有异步。
第一个Console.WriteLine
要求其参数在自己执行之前准备就绪。换句话说,Console.ReadLine
必须在第一个Console.WriteLine
之前执行。这就是空白屏幕的来源。
只需写为
Console.WriteLine("Enter your sentence: ");
sentence = Console.ReadLine()
Console.WriteLine("Sentence is: {0}", sentence);
或“同一行”
Console.WriteLine("Enter your sentence: ");
Console.WriteLine("Sentence is: {0}", Console.ReadLine());
答案 1 :(得分:1)
这里不关心同步和异步,只是语法错误试试
Console.WriteLine("Enter your sentence: ");
Console.WriteLine("Sentence is: {0}", Console.ReadLine());