|
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Een nieuw soort van variabele zijn de module variabelen (1), deze zijn op moduleniveau gedeclareerd.
Men kan deze variabelen van overal in de module aanroepen. In onderstaand voorbeeld kan sum worden aangeroepen worden in de Main- (2) of MakeSum procedure (3). Visual Basic Broncode Module Example1
Dim sum As Integer
Sub Main()
Dim value1 As Integer = 5
Dim value2 As Integer = 10
MakeSum(value1, value2)
Console.WriteLine(sum)
Console.ReadLine()
End Sub
Sub MakeSum(ByVal value1 As Integer, ByVal value2 As Integer)
sum = value1 + value2
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
De levensduur van deze variabele is identiek aan de levensduur van de bevattende module. Deze variabelen zitten dus langer gestockeerd in het geheugen, wat niet voordelig is. Gebruik dergelijke variabelen dan ook enkel wanneer alle ( of het merendeel ) van de procedures in een module deze variabele nodig hebben en je het al te veel doorgeven van de door deze variabele voorgestelde waarde wenst te vermijden. 8.5.1. Overlappende ScopesIn onderstaand voorbeeld hebben we 3 verschillend x variabelen gedeclareerd op verschillende niveaus. Verschillende variabelen ( in overlappende scopes ) met dezelfde identifier.
Technisch gezien is dit geen enkel probleem, een identifier moet immers uniek zijn binnen het geheel waarin hij is gedefinieerd.
Het zou echter niet mogelijk zijn in de dezelfde module twee variabelen te definiëren met dezelfde identifier. Of twee lokale of argumentvariabelen met dezelfde identifier te definiëren in dezelfde procedure. Visual Basic Broncode Module Example2
Dim x As Integer = 1
Sub Main()
Test1()
Dim x As Integer = 2
Console.WriteLine(x)
Test2(x)
Console.ReadLine()
End Sub
Sub Test1()
Console.WriteLine(x)
End Sub
Sub Test2(ByVal x As Integer)
x += 1
Console.WriteLine(x)
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Een aanroep naar een variabele zal bij voorkeur een aanroep naar een lokale of argumentvariabele zijn.
Regels (3) en (4) zijn aanroepen naar de lokale variabele gedeclareerd op regel (2).
Regels (7) en (8) zijn aanroepen naar de argumentvariabele gedefinieerd op regel (6).
Voor de Test1 procedure is er geen lokale of argumentvariabele met de naam x, regel (5) is bijgevolg een aanroep naar de module variabele gedeclareerd op regel (1). Terug naar boven 8.5.2. OefeningenOpgave :
Voorspel de output van onderstaand code. Visual Basic Broncode Module Exercise1Task
Dim test As Integer
Sub Main()
Test1()
Test2()
Console.ReadLine()
End Sub
Sub Test1()
Dim test As Integer = 1
Test3(test)
End Sub
Sub Test2()
test = 2
Test3(test)
End Sub
Sub Test3(ByVal test As Integer)
test += test
Console.WriteLine(test)
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Oplossing : Opgave : Voorspel de output van onderstaand code. Visual Basic Broncode Module Exercise2Task
Dim a As Integer = 1
Sub Main()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
a += 2
Test(a, b + e, c + 1, d)
Console.WriteLine(a)
Console.WriteLine(b)
Console.WriteLine(c)
Console.WriteLine(d)
Console.WriteLine(e)
Console.ReadLine()
End Sub
Sub Test(ByVal b As Integer, ByRef c As Integer, _
ByVal d As Integer, ByRef e As Integer)
b += a
c += b
d += c
e += d
End Sub
End ModuleDownload Visual Basic Broncode Bekijk deze Broncode in Visual C#
Oplossing : Visual Basic Output 2
0
0
4
0
Dit artikel is gepubliceerd op woensdag 28 april 2010 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Visual Basic 2008 & 2010 Boeken
Berichten
|