.NET My.Computer.Network.Ping& PadLeft

时间:2009-10-29 19:59:58

标签: .net ping padleft

以下代码片段在用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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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