Dela via


Partiella metoder (Visual Basic)

Med partiella metoder kan utvecklare infoga anpassad logik i kod. Vanligtvis är koden en del av en designergenererad klass. Partiella metoder definieras i en partiell klass som skapas av en kodgenerator, och de används ofta för att meddela att något har ändrats. De gör det möjligt för utvecklaren att ange anpassat beteende som svar på ändringen.

Designern av kodgeneratorn definierar endast metodsignaturen och ett eller flera anrop till metoden. Utvecklare kan sedan tillhandahålla implementeringar för metoden om de vill anpassa beteendet för den genererade koden. När ingen implementering tillhandahålls tas anrop till metoden bort av kompilatorn, vilket resulterar i ytterligare prestandakostnader.

Förklaring

Den genererade koden markerar definitionen av en partiell metod genom att placera nyckelordet Partial i början av signaturraden.

Partial Private Sub QuantityChanged()  
End Sub  

Definitionen måste uppfylla följande villkor:

  • Metoden måste vara , Subinte en Function.

  • Metodens brödtext måste lämnas tom.

  • Åtkomstmodifieraren måste vara Private.

Implementering

Implementeringen består främst av att fylla i brödtexten i den partiella metoden. Implementeringen är vanligtvis i en separat partiell klass från definitionen och skrivs av en utvecklare som vill utöka den genererade koden.

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

I föregående exempel dupliceras signaturen i deklarationen exakt, men variationer är möjliga. I synnerhet kan andra modifierare läggas till, till exempel Overloads eller Overrides. Endast en Overrides modifierare tillåts. Mer information om metodmodifierare finns i Underuttryck.

Använd

Du anropar en partiell metod eftersom du anropar andra Sub procedurer. Om metoden har implementerats utvärderas argumenten och metodens brödtext körs. Kom dock ihåg att det är valfritt att implementera en partiell metod. Om metoden inte implementeras har ett anrop till den ingen effekt och uttryck som skickas som argument till metoden utvärderas inte.

Exempel

I en fil med namnet Product.Designer.vb definierar du en Product klass som har en Quantity egenskap.

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

I en fil med namnet Product.vb anger du en implementering för QuantityChanged.

Partial Class Product

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

End Class

Slutligen deklarerar du en Product instans i main-metoden för ett projekt och anger ett initialt värde för dess Quantity egenskap.

Module Module1

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

End Module

En meddelanderuta ska visas som visar det här meddelandet:

Quantity was changed to 100

Se även