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

先行ゼロにより、一部のサブシステムが数値を 8 進数として解釈するようになると思います (古い C 規則)。8 と 9 は無効な 8 進数であるため、8 と 9 を含む 8 進数はエラーを引き起こします。

于 2009-10-29T20:07:22.767 に答える
1

なんで埋めてるの?余分な 0 は必要ないと思います。

于 2009-10-29T20:07:12.847 に答える