Delen via


Gedeeltelijke methoden (Visual Basic)

Met gedeeltelijke methoden kunnen ontwikkelaars aangepaste logica invoegen in code. Normaal gesproken maakt de code deel uit van een door de ontwerper gegenereerde klasse. Gedeeltelijke methoden worden gedefinieerd in een gedeeltelijke klasse die wordt gemaakt door een codegenerator en worden vaak gebruikt om een melding te geven dat er iets is gewijzigd. Ze stellen de ontwikkelaar in staat om aangepast gedrag op te geven als reactie op de wijziging.

De ontwerpfunctie van de codegenerator definieert alleen de handtekening van de methode en een of meer aanroepen naar de methode. Ontwikkelaars kunnen vervolgens implementaties voor de methode bieden als ze het gedrag van de gegenereerde code willen aanpassen. Wanneer er geen implementatie is opgegeven, worden aanroepen naar de methode verwijderd door de compiler, wat resulteert in geen extra prestatieoverhead.

Verklaring

De gegenereerde code markeert de definitie van een gedeeltelijke methode door het trefwoord Partial aan het begin van de handtekeningregel te plaatsen.

Partial Private Sub QuantityChanged()  
End Sub  

De definitie moet voldoen aan de volgende voorwaarden:

  • De methode moet een Sub, niet een Function.

  • De hoofdtekst van de methode moet leeg blijven.

  • De toegangsaanpassing moet zijn Private.

Implementatie

De implementatie bestaat voornamelijk uit het invullen van het lichaam van de gedeeltelijke methode. De implementatie bevindt zich doorgaans in een afzonderlijke gedeeltelijke klasse van de definitie en wordt geschreven door een ontwikkelaar die de gegenereerde code wil uitbreiden.

Private Sub QuantityChanged()  
'    Code for executing the desired action.  
End Sub  

In het vorige voorbeeld wordt de handtekening in de declaratie exact gedupliceerd, maar er zijn variaties mogelijk. In het bijzonder kunnen andere modifiers worden toegevoegd, zoals Overloads of Overrides. Er is slechts één Overrides wijzigingsfunctie toegestaan. Zie Subinstructie voor meer informatie over methodeaanpassingen.

Gebruik

U roept een gedeeltelijke methode aan zoals u een andere Sub procedure zou aanroepen. Als de methode is geïmplementeerd, worden de argumenten geëvalueerd en wordt de hoofdtekst van de methode uitgevoerd. Houd er echter rekening mee dat het implementeren van een gedeeltelijke methode optioneel is. Als de methode niet is geïmplementeerd, heeft een aanroep ervan geen effect en worden expressies die als argumenten aan de methode worden doorgegeven, niet geëvalueerd.

Opmerking

Definieer in een bestand met de naam Product.Designer.vb een Product klasse met een Quantity eigenschap.

Partial Class Product

    Private _Quantity As Integer

    Property Quantity() As Integer
        Get
            Return _Quantity
        End Get
        Set(ByVal value As Integer)
            _Quantity = value
            QuantityChanged()
        End Set
    End Property

    ' Provide a signature for the partial method.
    Partial Private Sub QuantityChanged()
    End Sub
End Class

Geef in een bestand met de naam Product.vb een implementatie voor QuantityChanged.

Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

Declareer ten slotte in de hoofdmethode van een project een Product exemplaar en geef een initiële waarde op voor de Quantity eigenschap.

Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

Er moet een berichtvak worden weergegeven waarin dit bericht wordt weergegeven:

Quantity was changed to 100

Zie ook