Visual Basic 控制台 - 自行输入文本

Visual Basic console - Making text type itself out

我对此完全不感冒,所以我什至不知道如何开始编写这样的代码,除了我认为它可能使用某种计时器的部分。 基本上我希望文本在控制台上自行输入,所以假设一个基本的 Console.WriteLine ("Hello world") 将花费 5 秒来自行编写(因此每秒 2 个字母)。是否有执行此类操作的命令?或者我是否必须制作一些(希望不是)复杂的基于计时器的 Sub 来为我写出文本?

提前致谢!

使用这段代码得到效果:

Sub ConsoleType(stringToWrite As String, delay As Integer)
    For Each i As Char In stringToWrite
        Console.Write(i)
        Threading.Thread.Sleep(delay)
    Next
End Sub

调用函数ConsoleType,它将是'typed'。 请注意,延迟以毫秒为单位。因为你想要 2 Letters/sec 的速度,你可以使用 500 的值。

不知道为什么有人会想要那样做。但这很容易做到,您可以将 Console.Out 重新分配给另一个文本流,它可以随意修改文本。

Class LazyWriter
    Inherits System.IO.TextWriter
    Private original As System.IO.TextWriter

    Public Sub New(original As System.IO.TextWriter)
        Me.original = original
    End Sub

    Public Overrides Sub Write(value As Char)
        original.Write(value)
        System.Threading.Thread.Sleep(500)
    End Sub

    Public Overrides ReadOnly Property Encoding As Encoding
        Get
            Return original.Encoding
        End Get
    End Property
End Class

用法:

Sub Main()
    Console.SetOut(New LazyWriter(Console.Out))
    Console.WriteLine("Hello slow world")
    Console.ReadLine()
End Sub

哎呀,太慢了。