以下代码片段在用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
答案 0 :(得分:3)
我猜测前导零会导致某些子系统将数字解释为八进制(旧的C约定)。 8和9是无效的八进制数字,因此其中包含8和9的八进制值会导致错误。
答案 1 :(得分:1)
你为什么要填充它?我认为你不需要额外的0。