C#慢慢写到控制台

时间:2018-07-16 21:56:46

标签: c#

我正在做一个简单的游戏,我希望文本在控制台中逐字输出。我可以找到的唯一方法是使用 Thread.Sleep()函数,但这仅适用于每一行。我该如何改写逐个单词?

1 个答案:

答案 0 :(得分:4)

您可以按照以下方法制作辅助方法。

using System.Threading.Tasks;
public static async Task WriteSlowly(string word, TimeSpan delay = default) 
{       
    if(delay == default) delay = TimeSpan.FromSeconds(1);

    Console.Write(word);
    await Task.Delay(delay);
}

然后像这样使用它

public class Program {
    public async Task Main() {
        while(true) 
        {
            await WriteSlowly("amazing");
        }
    }
}

,每当需要换行时,只需像这样使用它:

await WriteSlowly(word + Environment.NewLine);

当然,这是具有默认延迟时间的最简单的解决方案,但希望您能明白。