Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

18.1. Namespaces

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

In grote projecten (waar men met tientallen type definities te maken heeft) kan het handig zijn om een meer hiërarchische structuur aan te brengen binnen deze type definities.

Vergelijk het met het filesysteem van de meeste besturingssystemen.  In plaats van alle bestanden in een systeem op de root te plaatsen, gaat men folders creëren om daarin bestanden onder te brengen.
Dit heeft onder andere volgende voordelen :
- men kan door de hiërarchische structuur sneller bestanden terugvinden
- men kan verschillende bestanden met dezelfde naam creëren zolang deze maar in een verschillende folder zitten

Hetzelfde kunnen we binnen onze code verwezenlijken, maar hier maken we geen gebruik van folders, maar van "namespaces".  Toch zijn er op verschillende vlakken grote gelijkenissen met dergelijke folders in een filesysteem :
- het creëert een hiërarchische structuur binnen de code
- alles wat in dergelijke namespace gedefinieerd is moet een unieke naam hebben, maar 2 verschillende klassen zouden dezelfde naam kunnen hebben zolang ze maar in een verschillende namespace zitten
- namespaces kunnen net als folder in elkaar genest worden
- men kan op relatieve of absolute wijze verwijzen naar de inhoud van een namespace

Alle types worden minimaal op namespace-niveau gedefinieerd.
Visual Studio : Bij het starten en uitkiezen van een naam van een nieuw project in Visual Studio wordt steeds een namespace ("root namespace") gecreëerd.
Deze root namespace krijgt automatisch dezelfde naam als de naam van het project, maar men kan deze naam (in de project properties) gaan aanpassen.

Alles wat vervolgens binnen het project wordt gedefinieerd staat in deze root namespace.
Gezien er verschillende type definities dezelfde naam/identifier kunnen gebruiken, kan er verwarring ontstaan bij het verwijzen naar die identifier.
Om deze verwarring tegen te gaan kan men de "fully-qualified-identifier" van dat type gaan gebruiken.
De volledig naam van een bepaald type (fully-qualified-identifier) bestaat uit de identifier van het type zelf, voorafgegaan door de onderdelen ( namespaces) waarin het zich bevindt.

Zolang men zich binnen een bepaalde namespace bevindt kan men rechtstreeks verwijzen naar de inhoud van die namespace (op relatieve wijze).  Bevindt men zich echter buiten die namespace, dan zal men op zen minst de namespace moeten vermelden waarin het type is geplaatst.

Bijkomend kunnen we zelf eigen namespaces gaan toevoegen aan de hand van Namespace.
Namespace <identifier-van-de namespace>
    <inhoud-van-de namespace>
End NameSpace
In onderstaand voorbeeld wordt gedemonstreerd hoe je verschillend type kunt creëren met dezelfde identifier, en hoe je op relatieve of absolute wijze kunt verwijzen naar dergelijke types.
Visual Basic 2012 Broncode - Codevoorbeeld 433
Class Person     ' type-1
    '...
End Class
Class Example1
    Public Shared Sub Main()
        Dim person1 As Person = New Person
        Dim person2 As ConsoleApplication1.Person = _
                                                  New ConsoleApplication1.Person
        Dim person3 As Persons.Person = New Persons.Person
        Dim person4 As ConsoleApplication1.Persons.Person = _
                                          New ConsoleApplication1.Persons.Person
    End Sub
End Class
Namespace Persons
    Class Person ' type-2
        '...
    End Class
    Class Example2
        Public Shared Sub Main()
            Dim person5 As Person = New Person
            Dim person6 As ConsoleApplication1.Person = _
                                                 New ConsoleApplication1.Person
            Dim person7 As Persons.Person = New Persons.Person
            Dim person8 As ConsoleApplication1.Persons.Person = _
                                         New ConsoleApplication1.Persons.Person
        End Sub
    End Class
End Namespace
De naam van de root namespace is hier ConsoleApplication1.

- person1 wordt gedeclareerd van type-1 (relatieve verwijzing)
- person2 wordt gedeclareerd van type-1 (absolute verwijzing)
- person3 wordt gedeclareerd van type-2 (relatieve verwijzing)
- person4 wordt gedeclareerd van type-2 (absolute verwijzing)
- person5 wordt gedeclareerd van type-2 (relatieve verwijzing)
- person6 wordt gedeclareerd van type-1 (absolute verwijzing)
- person7 wordt gedeclareerd van type-2 (relatieve verwijzing)
- person8 wordt gedeclareerd van type-2 (absolute verwijzing)

Ook de klassenbibliotheek van het .NET Framework (FCL) bevat tal van namespaces.

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.