0

下面的代码片段在用 0 填充最后一部分时会引发错误,最后一部分是 008、009、018、019、028、029 等。有人知道为什么吗?

Sub Main()
    Dim fixed As String = "192.168.0."
    Dim ip1, ip2 As String

    For i As Int32 = 1 To 255
        ip1 = fixed & Convert.ToString(i)
        Console.Write(ip1 & " - ")
        Try
            Console.WriteLine(My.Computer.Network.Ping(ip1))
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try

        ip2 = fixed & Convert.ToString(i).PadLeft(3, "0"c)
        Console.Write(ip2 & " - ")
        Try
            Console.WriteLine(My.Computer.Network.Ping(ip2))
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    Next
End Sub
4

2 回答 2

3

我猜想前导零会导致某些子系统将数字解释为八进制(旧的 C 约定)。8 和 9 是无效的八进制数字,因此其中包含 8 和 9 的八进制值会导致错误。

于 2009-10-29T20:07:22.767 回答
1

你为什么要填充它?我认为您不需要额外的0。

于 2009-10-29T20:07:12.847 回答