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.6. Static 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.

Static variabelen zijn variabelen die worden gedeclareerd op procedureniveau, en die enkele aanroepbaar zijn in deze procedure.

De levensduur van deze variabelen is gelijk aan de levensduur van de module waarin ze zijn gedefinieerd. Wat als gevolg heeft dat static variabelen slechts eenmalig worden gedeclareerd, en dat deze variabelen hun waarde behouden ook al is de procedure waarin die static variabele is gedeclareerd beëindigd.
Visual Basic Broncode
Module Example1
    Sub Main()
        Test1()
        Test1()
        Test1()
        '
        Test2()
        Test2()
        Test2()
        '
        Console.ReadLine()
    End Sub
    Sub Test1()
        Static x As Integer
        x += 1
        Console.WriteLine(x)
    End Sub
    Sub Test2()
        Static x As Integer = 10
        x += 1
        Console.WriteLine(x)
    End Sub
End Module
Visual Basic Output
1
2
3
11
12
13
Gezien dergelijke static variabele pas uit het geheugen wordt gehaald als de levensduur van de module afloopt, zijn ook deze ( net als variabelen op moduleniveau ) meer belastend voor het geheugen.
Wees zuinig met static variabelen, of probeer zelfs het gebruik ervan indien mogelijk te vermijden.

Static variabelen worden gebruikt om hun waarden in een uitvoeringsinstantie van een procedure ook in volgende uitvoeringsinstanties te kunnen gebruiken.

In onderstaand voorbeeld zal de eerste keer dat de Test procedure wordt uitgevoerd er een andere output gegeven worden dan bij volgende uitvoeringsinstanties.
Visual Basic Broncode
Module Example2
    Sub Main()
        Test()
        Test()
        Test()
        '
        Console.ReadLine()
    End Sub
    Sub Test()
        Static firstExecution As Boolean = True
        If firstExecution Then
            Console.WriteLine("First execution of Test.")
            firstExecution = False
        Else
            Console.WriteLine("Not the first execution of Test.")
        End If
    End Sub
End Module
Visual Basic Output
First execution of Test.
Not the first execution of Test.
Not the first execution of Test.

8.6.1. Oefening

Opgave :

Voorspel de output van onderstaand programma zonder het programma uit te voeren.
Visual Basic Broncode
Module Exercise1Task
    Sub Main()
        Test1()
        Test1()
        '
        Console.ReadLine()
    End Sub
    Sub Test1()
        Static t1 As Integer = 10
        t1 += 1
        Test2(t1)
        Test2(t1)
    End Sub
    Sub Test2(ByVal t2 As Integer)
        Static t3 As Integer = 20
        t3 += t2
        Console.WriteLine(t3)
    End Sub
End Module
Oplossing :
Visual Basic Output
31
42
54
66

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