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

23.15. Constraints bij Genericiteit

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.

Het is mogelijk bepaalde beperkingen op te leggen aan de actuele parametertypes die worden ingevuld in een generieke constructie.
Deze beperkingen worden "constraints" genoemd.

Men zou bijvoorbeeld een typeparameter kunnen beperken tot types die de IComparable interface implementeren (1), dit dan om te vereisten dat men ergens in de implementatie van de generieke constructie gebruik kan maken van het bepalen van de volgordelijkheid tussen objecten van dat type.

Men kan typeparameters beperken tot types die een bepaalde basisklasse hebben (1), of beperken tot types die een default constructor hebben (1), of beperken tot reference- (2) of valuetypes (3).

Bij meerdere constraints plaats je de verschillende constraints, afgescheiden door kommas, tussen accolades {}.
Visual Basic 2012 Broncode - Codevoorbeeld 612
Class BaseClass
End Class
Class Generic1(Of T As {IComparable, IEquatable(Of T), BaseClass, New})    ' (1)
End Class
Class Generic2(Of T As Class)                                              ' (2)
End Class
Class Generic3(Of T As Structure)                                          ' (3)
End Class
Type Generic1 vereist een typeparameter die de IComparable interface en een generische instantie van de IEquatable(Of T) interface implementeert.
Type Generic1 vereist ook een typeparameter van het type BaseClass (of afgeleid).  En Generic1 vereist een typeparameter die over een parameterloze constructor beschikt.

Een constraint als New zou je opnemen als ergens in de implementatie van de generieke constructie een instantie wordt gecreëerd en men zeker wil zijn dat men geen parameters hoeft op te geven bij het construeren van dergelijk object.

Men kan maximaal één basisklasse als constraint opgeven.

De constraints BaseClass en Class kunnen niet worden gecombineerd.  BaseClass impliceert immers reeds een Class-constraint.

De constraints Structure en New kunnen niet worden gecombineerd.  Men kan in een structure immers nooit een parameterloze constructor definieren.

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