homeboekenlinksledenabonneer je :Blijf op de hoogte door je te abonneren op de vbvoorbeelden RSS Niews Feed!Blijf op de hoogte door vbvoorbeelden te volgen op Twitter!Blijf op de hoogte door fan te worden van vbvoorbeelden op Facebook!
Visual Basic 2008 en 2010 Voorbeelden en Boeken Microsoft Visual Studio 2010Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

visual basic 2008 voorbeelden en boeken / visual basic 2010 voorbeelden en boeken

8.5. Module Variabelen

Print Email Deel op FacebookDeel op TwitterDeel op DiggBookmark op Google BookmarksDeel op del.icio.usOverige Sociale Netwerksites...

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                                                     ' (1)
    Sub Main()
        Dim value1 As Integer = 5
        Dim value2 As Integer = 10
        '
        MakeSum(value1, value2)
        '
        Console.WriteLine(sum)                                             ' (2)
        '
        Console.ReadLine()
    End Sub
    Sub MakeSum(ByVal value1 As Integer, ByVal value2 As Integer)
        sum = value1 + value2                                              ' (3)
    End Sub
End Module
Visual Basic Output
15
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 Scopes

In 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                                                  ' (1)
    Sub Main()
        Test1()
        '
        Dim x As Integer = 2                                              ' (2)
        Console.WriteLine(x)                                              ' (3)
        '
        Test2(x)                                                          ' (4)
        '
        Console.ReadLine()
    End Sub
    Sub Test1()
        Console.WriteLine(x)                                              ' (5)
    End Sub
    Sub Test2(ByVal x As Integer)                                         ' (6)
        x += 1                                                            ' (7)
        Console.WriteLine(x)                                              ' (8)
    End Sub
End Module
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).
Visual Basic Output
1
2
3

8.5.2. Oefeningen

Opgave :

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 Module
Oplossing :
Visual Basic Output
2
4
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 Module
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

Het Groene Visual Basic 2008 & 2010 Voorbeelden Boek Het Blauwe Visual Basic 2008 & 2010 Voorbeelden Boek Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek

Bevalt een artikel je, dan kan je de inhoud van vbvoorbeelden ook reclamevrij in boekvorm verkrijgen.

De inhoud is verdeeld over 3 boeken, Het Groene, Het Blauwe en Het Rode Visual Basic 2008 & 2010 Voorbeelden Boek.

Klik hier voor meer informatie.

Berichten

Fast UML Sequence Diagram Editor