Hej! Har inte programmerat i VB.NET alls men borde vara något sånt här: Ja du... konstigt nog fungerade tycker jag ju. Varför tycker du det? Det finns många tillfällen då man inte klarar sig utan såna. Och i det här fallet är det ju frågan om en modulnivåvariabel, och inte ett globalt scope, och modulscope är svårt att klara sig utan :-) Det finns en allmän aversion bland programmerare mot att deklarera variabler mer för stort scope (typ räckvidd). Ex: Får väl be om ursäkt för att jag beter mig som ett troll.Global variabel
Om jag har:
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dim hej As String
hej = "HEJ"
End Sub
Private Sub main_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
msgbox(hej)
End Sub
Hur kan jag använda variablen hej i en annan "Sub", måste inte den vara global?Sv: Global variabel
<code>
dim hej As String
Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
hej = "HEJ"
End Sub
Private Sub main_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
msgbox(hej)
End Sub
</code>Sv:Global variabel
Då jag bara deklarerar variablerna utanför sub men skapar variablen i en sub där jag inte använder variablen :S
Tack =)Sv:Global variabel
Sv: Global variabel
Sv: Global variabel
Följande deklaration i en modul i VB ger en "global variabel" som kan accessas överallt i programmet. Det kan låte smidigt men leder oftast till dålig kod.
<code>
Module Module1
Public globalVariable as string
end module
</code>
"Modulnivåvariabel" (i en klass eller ett formulär, kan endast nås i denna klass):
<code>
Class Class1
Private classVariable as string
End Class
</code>
"Metodnivåvariabel" (kan endast nås i denna metod):
<code>
Class Class1
Public Sub Test
Dim methodVariable as string
End Sub
End Class
</code>Sv: Global variabel
Vi går mot paralleism (concurrency), då passar globala variabler och modulnivå variabler in i bilden.
Det är snyggare att göra som det funktionella språken, som stödjer isolering av minne, actors-mönstret, and asynkron message-skickning mellan processer(trådar) t.ex. Erlang.
Jag tycker det ger ett bättre flöde i programkoden och minimerar fel.
Såg idag en artikel på IDG om Microsoft Axum http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx vilket verkar intressant. Vi får väll se hur det utvecklas.