WriteLine在控制台上,但在复古风格

时间:2010-10-29 18:37:36

标签: c# .net console

我正在尝试在控制台上写,让我们说“输入您的用户名:”我知道的是使用Console.WriteLine("Enter your...");

但是我希望这个提示信息显示为“像外星人或星际迷航计算机一样输入”。 非常感谢您对最佳实践的专家答案。感谢

6 个答案:

答案 0 :(得分:9)

    public static void WriteSlow(string txt) {
        foreach (char ch in txt) {
            Console.Write(ch);
            System.Threading.Thread.Sleep(50);
        }
    }

答案 1 :(得分:5)

我认为使用Random to sleep线程可以获得良好的触感。

    private static void RetroConsoleWriteLine()
    {
        const string message = "Enter your user name...";
        var r = new Random();
        foreach (var c in message)
        {
            Console.Write(c);
            System.Threading.Thread.Sleep(r.Next(50,300));
        }
        Console.ReadLine();
    }

或者,如果只是因为它的地狱而且脱颖而出

    private static void RetroConsoleWriteLine()
    {
        const string message = "Enter your user name...";
        var r = new Random();
        Action<char> action = c =>
        {
            Console.Write(c);
            System.Threading.Thread.Sleep(r.Next(50, 300));
        };
        message.ToList().ForEach(action);
        Console.ReadLine();
    }

答案 2 :(得分:1)

 foreach (var character in "Enter your...")
        {
            Console.Write(item);
            System.Threading.Thread.Sleep(300);

        }

答案 3 :(得分:1)

只需在System.Threading命名空间中使用Thread.Sleep即可在每个字符之间添加等待。

String text = "Enter your username";
foreach (char c in text)
{
    Console.Write(c);
    System.Threading.Thread.Sleep(100);
 }

答案 4 :(得分:1)

您可以在文字上创建一个循环,在字母之间休息一段时间,如:

string text = "Enter your User Name:";
for(int i = 0; i < text.Length; i++)
{
    Console.Write(text[i]);
    System.Threading.Thread.Sleep(50);
}

答案 5 :(得分:1)

我唯一的补充是一点点随机性(从汉斯的回答开始):

public static void WriteSlow(string txt) 
{ 
    Random r = new Random();
    foreach (char ch in txt) 
    { 
        Console.Write(ch); 
        System.Threading.Thread.Sleep(r.Next(10,100)); 
    } 
}