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

25.1. Metadata via Attributen

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.

Klassen in .NET bevatten allerhande declaratieve informatie dat beschrijft hoe een klasse werkt.  Zo heb je accessmodifiers als Public, Protected, Friend, Protected Friend en Private die de toegankelijkheid van klassen, velden of andere members beschrijven.
Er zijn ook sleutelwoorden als MustInherit, NotInheritable, MustOverride en Overrides die het inheritance en polymorfisch gerelateerde gedrag definiëren van een klasse of member.

Daarnaast is er nog iets als declaratieve attributen die geassocieerd kunnen worden met een bepaalde entiteit in .NET.  Deze attributen worden gestockeerd in de metadata van dat type en zijn ten allen tijd beschikbaar (via "reflection").
Dergelijke attributen dienen om de declaratie op een bepaalde wijze aan te passen.

25.1.1. Obsolete Attribute

De FCL bevat tal van voorgedefinieerd attributen, een voorbeeld daarvan is het <Obsolete()> attribuut, deze kan gebruikt worden om een waarschuwing met een klasse of een member te associëren.  Dit is bijvoorbeeld ideaal om aan andere ontwikkelaars te laten weten dat er nieuwe versies van klassen of members beschikbaar zijn.
Visual Basic 2012 Broncode - Codevoorbeeld 654
<Obsolete("OldClass is obsolete.  Use NewClass.")> _
Class OldClass
End Class
Class NewClass
    <ObsoleteAttribute("Method1 is obsolete.  Use Method2.")> _
    Public Sub Method1()
    End Sub
    Public Sub Method2()
    End Sub
End Class
Class ObsoleteAttributeExample
    Public Shared Sub Main()
        Dim object1 As New OldClass
        Dim object2 As New NewClass
        object2.Method1()
    End Sub
End Class
Visual Studio : In de tasklist vind je nu waarschuwingen omtrent het gebruik van deze obsolete (gedateerde/vervallen) entiteiten.  Slechts een waarschuwing, het programma compileert nog altijd.  Tenzij je in de project properties op de "Compile" tab "Treat all warnings as errors" aanvinkt.  Of tenzij je de "/warnaserror" schakel gebruikt voor de VBC commandline compiler.
De volledige identifier van een attribuut heeft steeds een suffix "Attribute", maar die mag men in een aanroep naar dat attribuut ook steeds weglaten.  ObsoleteAttribute of Obsolete is dus identiek.

De string parameter is hier optioneel.  Een attribuut wordt gedefinieerd door een klasse, hier een klasse met een string parameter om de message in te stellen.

25.1.2. ParamArray Attribute

Visual Basic gebruikt ook andere attributen om features uit de taal te implementeren.  Bijvoorbeeld bij het declareren van een method met een argumentenlijst van variabele lengte, kan het keyword ParamArray gebruikt worden.  Dit keyword wordt eigenlijk omgezet naar een ParamArrayAttribute.
Visual Basic 2012 Broncode - Codevoorbeeld 655
Class ParamArrayAttributeExample
    Public Shared Sub Main()
        Console.WriteLine(GetSum1(1, 2, 3))
        Console.WriteLine(GetSum2(4, 5, 6, 7, 8))
        '
        Console.ReadLine()
    End Sub
    Public Shared Function GetSum1( _
                               ByVal ParamArray numbers As Integer()) As Integer
        For Each number As Integer In numbers
            GetSum1 += number
        Next
    End Function
    Public Shared Function GetSum2( _
                  <ParamArrayAttribute()> ByVal numbers As Integer()) As Integer
        For Each number As Integer In numbers
            GetSum2 += number
        Next
    End Function
End Class
Console Application Output
6
30
Het ParamArray attribuut wordt hier toegepast op parameter niveau, andere attributen kunnen slaan op klasse en/of member niveau (zoals ObsoleteAttribute) of kunnen zelfs toegepast worden op assembly niveau.

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