Questione : Come evitare “la variabile è usata prima che esso sia stato assegnato un valore.„

Il codice sotto conduce ad un messaggio d'avvertimento circa il messaggio variabile di i.

The legge… “la variabile d'avvertimento “che„ sono usato prima che esso sia stato assegnato un valore. Un'eccezione nulla di riferimento potrebbe risultare al

Using MyReader di runtime.

....................... come nuovo
di Microsoft.VisualBasic.FileIO.TextFieldParser (“ext \ listoffilesandpaths.txt del c:\myvbast„) MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType. Delimited
MyReader.Delimiters = nuova stringa () {„, “} il
oscura il currentRow come
della stringa () mentre non currentRow di MyReader.EndOfData
=
i += 1
Nicknam di MyReader.ReadFields () (i) = 0)
NameOfFile del currentRow ((i) = currentRow (1)
PathOfFile (i) = currentRow (2)
ExtensionOfFile (i) = currentRow (3)
LengthOfRecords (i) = currentRow (il

But di Using

di conclusione di While
di conclusione di 4)
.................... che cosa sono io ha supposto per fare per evitare questo avvertimento?

If uso fioco prima che il blocco - per esempio i fioca come numero intero = 0 - allora io ottenere un messaggio di errore mi che dice che “la variabile “io„ nasconde una variabile in un block.

So, come dovrebbe io riscrivere il codice qui sopra per evitare tutte queste cose?

Thank you.
class= del

Risposta : Come evitare “la variabile è usata prima che esso sia stato assegnato un valore.„

Utilizzare un varaiable differente nel blocco usando:
Penso che abbiate il codice come questo:

Oscurare la i come numero intero

Using MyReader come nuovo Microsoft.VisualBasic.FileIO.TextFieldParser (“c:\myvbastext\listoffilesandpaths.txt ")
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = nuova stringa () {“,„}
           currentRow fioco come stringa ()
           Mentre non 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)
           Concluder mentre
        Concluder Using

Così potete fare come questo:

Oscurare la i come numero intero

 
Using MyReader come nuovo Microsoft.VisualBasic.FileIO.TextFieldParser (“c:\myvbastext\listoffilesandpaths.txt ")
           J fioco come numero intero = 0
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = nuova stringa () {“,„}
           currentRow fioco come stringa ()
           Mentre non 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)
           Concluder mentre
        Concluder Using
...................
................. “„ sono accessibile qui pure in modo da “J„ è una variabile che separata state usando entro “using„ il blocco.
 ....................
....................
....................

 Poiché la variabile “io„ sta usando la parte interna “using„ il blocco e la parte esterna “using„ il blocco pure in modo da sta nascondendo il valore all'interno del “using„ il blocco.
Altre soluzioni  
 
programming4us programming4us