Question : Comment éviter la « variable est employée avant qu'il ait été assigné une valeur. »

Le code ci-dessous mène à un message d'avertissement au sujet de message variable d'i.

The lit… « la variable de avertissement « que je » est employé avant qu'il ait été assigné une valeur. Une exception nulle de référence pourrait résulter au

Using MyReader de runtime.

....................... en tant que nouveau
de Microsoft.VisualBasic.FileIO.TextFieldParser («  c:\myvbast/>ext \ listoffilesandpaths.txt ») MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType. Delimited
MyReader.Delimiters = nouvelle corde () { », « } le
obscurcissent le currentRow comme
de corde () tandis que pas currentRow de MyReader.EndOfData
=
i += 1
Nicknam de MyReader.ReadFields () (i) = 0)
NameOfFile de currentRow ((i) = currentRow (1)
PathOfFile (i) = currentRow (2)
ExtensionOfFile (i) = currentRow (3)
LengthOfRecords (i) = currentRow (le

But d'Using

de fin de While
de fin de 4)
.................... ce qui suis moi a supposé pour faire pour éviter cet avertissement ? le

If j'emploie faible avant que le bloc - par exemple faible I comme nombre entier = 0 - alors je recevoir un message d'erreur m'indiquant que la « variable « je » cache une variable dans un block.

So, comment devrait je récrire le code ci-dessus pour éviter toutes ces choses ?

Thank you.
class= de

Réponse : Comment éviter la « variable est employée avant qu'il ait été assigné une valeur. »

Employer un différent varaiable dans le bloc de utilisation :
Je pense que vous avez le code comme ceci :

Obscurcir I comme nombre entier

Using MyReader en tant que nouveau Microsoft.VisualBasic.FileIO.TextFieldParser (« c:\myvbastext\listoffilesandpaths.txt ")
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = nouvelle corde () {« , »}
           Faible currentRow comme corde ()
           Tandis que pas 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)
           Finir tandis que
        Finir Using

Ainsi vous pouvez faire comme ceci :

Obscurcir I comme nombre entier

 
Using MyReader en tant que nouveau Microsoft.VisualBasic.FileIO.TextFieldParser (« c:\myvbastext\listoffilesandpaths.txt ")
           Faible j comme nombre entier = 0
             MyReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
             MyReader.Delimiters = nouvelle corde () {« , »}
           Faible currentRow comme corde ()
           Tandis que pas 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)
           Finir tandis que
        Finir Using
...................
................. « je » est accessible ici aussi bien ainsi « j » est une variable séparée que vous employez dans « using » le bloc.
 ....................
....................
....................

 Puisque la variable « je » emploie l'intérieur « using » le bloc et l'extérieur « using » le bloc aussi bien ainsi elle cache la valeur dans « using » le bloc.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us