Frage : Wie man „Variable wird verwendet vermeidet, bevor es ist zugewiesen worden einen Wert.“

Der folgende Code führt zu eine Warnmeldung über variable i.

The Mitteilung liest… „warnende Variable, „, das ich“ verwendet werde, bevor es einen Wert zugewiesen worden ist. Eine ungültige Bezugsausnahme könnte runtime.

....................... am

Using MyReader als neues Microsoft.VisualBasic.FileIO.TextFieldParser („ c:\myvbast ext \ listoffilesandpaths.txt“)
resultieren MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType. Delimited
MyReader.Delimiters = neue Schnur () {“, „} verdunkeln
currentRow als Schnur ()
, während nicht 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)
Ende While
Ende Using

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

But, was ich sind, nahm an, um zu tun, um diese Warnung zu vermeiden?

If verwende ich schwaches, bevor der Block - z.B. schwaches i als ganze Zahl = 0 - ich eine Fehlermeldung dann erhalten, die mir erklärt, dass „Variable „ich“ eine Variable in einem einschließenden block.

So versteckt, wie sollte ich den Code oben neu schreiben, um alle diese Sachen zu vermeiden?

Thank you.

Antwort : Wie man „Variable wird verwendet vermeidet, bevor es ist zugewiesen worden einen Wert.“

Ein unterschiedliches varaiable im verwendenblock verwenden:
Ich denke, dass Sie den Code so haben:

I als ganze Zahl verdunkeln

Using MyReader als neues Microsoft.VisualBasic.FileIO.TextFieldParser („c:\myvbastext\listoffilesandpaths.txt ")
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = neue Schnur () {„,“}
           Schwaches currentRow als Schnur ()
           Während nicht 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)
           Beenden während
        Using beenden

So können Sie so tun:

I als ganze Zahl verdunkeln

 
Using MyReader als neues Microsoft.VisualBasic.FileIO.TextFieldParser („c:\myvbastext\listoffilesandpaths.txt ")
           Schwaches J als ganze Zahl = 0
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = neue Schnur () {„,“}
           Schwaches currentRow als Schnur ()
           Während nicht 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)
           Beenden während
        Using beenden
...................
................. „ich“ bin hier außerdem zugänglich, also „J“ ist eine unterschiedliche Variable, die Sie innerhalb „using“ Block verwenden.
 ....................
....................
....................

 Da Variable „ich“ das Innere benutzt, das „using“ den Block und Außenseite sind „using“ Block außerdem also ist, versteckt sie den Wert innerhalb „using“ Block.
Weitere Lösungen  
 
programming4us programming4us