Pytanie : Dlaczego "Zmienna używać zanim ono wyznaczać wartość."

The kod pod prowadzenie Ostrzegawczy Wiadomość o zmienna i.

The wiadomość czytać… "Zmienna "i" używać zanim ono wyznaczać wartość. Nieobowiązujący odniesienie wyjątek móc przy runtime.

.......................

Using MyReader Jako Nowy Microsoft.VisualBasic.FileIO.TextFieldParser (" c:\myvbast ext \ listoffilesandpaths.txt")
MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType. Delimited
MyReader.Delimiters = Nowy Smyczkowy () {", "}
Ćmić currentRow Jako Smyczkowy ()
Podczas Gdy Nie MyReader.EndOfData
currentRow = MyReader.ReadFields ()
i += 1
Nicknam (i) = currentRow ((0))
NameOfFile (i) = currentRow (1)
PathOfFile (i) = currentRow (2)
ExtensionOfFile (i) = currentRow (3)
LengthOfRecords (i) = currentRow (4)
Końcówka While
Końcówka Using

....................

But co być I przypuszczać ten Ostrzeżenie?

If I używać Ciemnawy zanim the Blok - e.g. Ciemnawy i Jako Integer = (0) - wtedy I dostawać Błąd Wiadomość że "Zmienna "i" chować zmienna w block.

So, dlaczego musieć I re-write the kod dlaczego wszystkie te rzecz?

Thank you.

Odpowiedź : Dlaczego "Zmienna używać zanim ono wyznaczać wartość."

Używać różny varaiable w the blok:
I myśleć ty mieć the kod jak myśleć:

Ćmić i jako integer

Using MyReader Jako Nowy Microsoft.VisualBasic.FileIO.TextFieldParser ("c:\myvbastext\listoffilesandpaths.txt ")
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = Nowy Sznurek () {","}
           Ciemnawy currentRow Sznurek ()
           Podczas Gdy Nie MyReader.EndOfData
                 currentRow = MyReader.ReadFields ()
               i += (1)
                 Nicknam (i) = currentRow ((0))
                NameOfFile (i) = currentRow (1)
               PathOfFile (i) = currentRow (2)
                ExtensionOfFile (i) = currentRow (3)
                 LengthOfRecords (i) = currentRow (4)
           Kończyć Podczas Gdy
        Kończyć Using

W Ten Sposób ty móc jak móc:

Ćmić i jako integer

 
Using MyReader Jako Nowy Microsoft.VisualBasic.FileIO.TextFieldParser ("c:\myvbastext\listoffilesandpaths.txt ")
           Ciemnawy j jako integer = (0)
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = Nowy Sznurek () {","}
           Ciemnawy currentRow Sznurek ()
           Podczas Gdy Nie MyReader.EndOfData
                 currentRow = MyReader.ReadFields ()
               j += (1)
                 Nicknam (i) = currentRow ((0))
                NameOfFile (i) = currentRow (1)
               PathOfFile (i) = currentRow (2)
                ExtensionOfFile (i) = currentRow (3)
                 LengthOfRecords (i) = currentRow (4)
           Kończyć Podczas Gdy
        Kończyć Using
...................
................. "i" być dostępny tutaj także więc "j" być oddzielny zmienna ty używać wśród "using" blok.
 ....................
....................
....................

 Ponieważ zmienna "i" używać inside the "using" blok i outside the "using" blok także więc ono chować the wartość wśród the "using" blok.
Inne rozwiązania  
 
programming4us programming4us