2010-06-03 6 views
0

peut sembler ne pas comprendre comment utiliser une variable de retour de la fonction dans le code global Obscurcit exemple:Utiliser le retour de la fonction dans vb.net variable globale

Public Class Main 
    Dim Path As String = FixPath() 
    Dim fixwrongtxt As String = Path & "tryme.txt" 

    Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    FixPath() 
    On_load() 
    End Sub 

    Private Function FixPath() As String 
    Path = "C:\test" 
    MsgBox(Path) //First Message Box' 
    Return Path 
    End Function 

    Sub On_load() 
    MsgBox(fixwrongtxt) //Second Message Box 
    End Sub 
End Class 

quand je le lance tout ce que j'obtenir le premier message boîte qui contient "C: \ test" et je clique sur ok et sur la deuxième boîte de message, je reçois "custom.dll" sans le "C: \ test" ou "Chemin de retour" Que fais-je tort? Je sais que je ne peux pas utiliser // dans vb.net. J'ai également essayé d'ajouter "FixPath()" sous Sub On_load() mais j'ai obtenu le même résultat. Aussi la raison pour laquelle je dois avoir ces global est parce que j'ai environ 30 Subs qui font référence à « Path » Variable ... Merci

Répondre

1

Changer votre variable publique à ceci:

Dim Path As String 


Private Sub Main_Load(.... 

Path = FixPath() 

Il est impossible d'appeler une fonction dans l'espace global

+0

alors j'ai besoin de mettre Path = FixPath() dans tous mes sous-marins? –

+0

Non lorsque vous définissez la variable une fois que vous pouvez l'utiliser partout ailleurs. Assurez-vous juste que vous définissez votre variable sur la première méthode, donc charger est la bonne méthode pour le faire. – MUG4N

+0

thx ça a bien marché! :) J'ai décidé de mettre les Dims globaux dans le On_Load Sub et cela fonctionne .. Merci encore –

Questions connexes