Gedeeltelijk (Visual Basic)
Geeft aan dat een typedeclaratie een gedeeltelijke definitie van het type is.
U kunt de definitie van een type onder verschillende declaraties verdelen met behulp van het Partial
trefwoord. U kunt zoveel gedeeltelijke declaraties gebruiken als u wilt, in zoveel verschillende bronbestanden als u wilt. Alle declaraties moeten zich echter in dezelfde assembly en dezelfde naamruimte bevinden.
Notitie
Visual Basic ondersteunt gedeeltelijke methoden, die doorgaans worden geïmplementeerd in gedeeltelijke klassen. Zie Gedeeltelijke methoden en subinstructie voor meer informatie.
Syntaxis
[ <attrlist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] _
Partial { Class | Structure | Interface | Module } name [ (Of typelist) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ variabledeclarations ]
[ proceduredeclarations ]
{ End Class | End Structure }
generator
Term | Definitie |
---|---|
attrlist |
Optioneel. Lijst met kenmerken die van toepassing zijn op dit type. U moet de lijst met kenmerken tussen punthaken (< > ) insluiten. |
accessmodifier |
Optioneel. Hiermee geeft u op welke code toegang heeft tot dit type. Zie Access-niveaus in Visual Basic. |
Shadows |
Optioneel. Zie schaduwen. |
MustInherit |
Optioneel. Zie MustInherit. |
NotInheritable |
Optioneel. Zie Nietheritable. |
name |
Vereist. Naam van dit type. Moet overeenkomen met de naam die is gedefinieerd in alle andere gedeeltelijke declaraties van hetzelfde type. |
Of |
Optioneel. Hiermee geeft u op dat dit een algemeen type is. Zie Algemene typen in Visual Basic. |
typelist |
Vereist als u Van gebruikt. Zie Lijst met typen. |
Inherits |
Optioneel. Zie Overname-instructie. |
classname |
Vereist als u Inherits gebruikt. De naam van de klasse of interface waaruit deze klasse is afgeleid. |
Implements |
Optioneel. Zie Implementatie-instructie. |
interfacenames |
Vereist als u Implements gebruikt. De namen van de interfaces die dit type implementeert. |
variabledeclarations |
Optioneel. Instructies die aanvullende variabelen en gebeurtenissen voor het type declareren. |
proceduredeclarations |
Optioneel. Instructies die aanvullende procedures voor het type declareren en definiëren. |
End Class of End Structure |
Hiermee wordt deze gedeeltelijke Class of Structure definitie beëindigd. |
Opmerkingen
Visual Basic maakt gebruik van gedeeltelijke klassedefinities om gegenereerde code te scheiden van door de gebruiker geschreven code in afzonderlijke bronbestanden. De Windows Form Designer definieert bijvoorbeeld gedeeltelijke klassen voor besturingselementen zoals Form. U moet de gegenereerde code in deze besturingselementen niet wijzigen.
Alle regels voor het maken van klassen, structuren, interface en modules, zoals die voor wijzigingsgebruik en overname, zijn van toepassing bij het maken van een gedeeltelijk type.
Beste praktijken
In normale omstandigheden moet u de ontwikkeling van één type niet splitsen in twee of meer declaraties. Daarom hebt u in de meeste gevallen het
Partial
trefwoord niet nodig.Voor leesbaarheid moet elke gedeeltelijke declaratie van een type het
Partial
trefwoord bevatten. De compiler staat maximaal één gedeeltelijke declaratie toe om het trefwoord weg te laten; als er twee of meer weglaten, geeft de compiler een fout aan.
Gedrag
Unie van verklaringen. De compiler behandelt het type als de samenvoeging van alle gedeeltelijke declaraties. Elke wijziging van elke gedeeltelijke definitie is van toepassing op het hele type en elk lid van elke gedeeltelijke definitie is beschikbaar voor het hele type.
Typepromotie is niet toegestaan voor gedeeltelijke typen in modules. Als een gedeeltelijke definitie zich in een module bevindt, wordt de niveauverhoging van dat type automatisch verslagen. In dat geval kan een set gedeeltelijke definities onverwachte resultaten en zelfs compilerfouten veroorzaken. Zie Type promotie voor meer informatie.
De compiler voegt alleen gedeeltelijke definities samen wanneer hun volledig gekwalificeerde paden identiek zijn.
Het Partial
trefwoord kan worden gebruikt in deze contexten:
Opmerking
In het volgende voorbeeld wordt de definitie van klasse sampleClass
gesplitst in twee declaraties, die elk een andere Sub
procedure definiëren.
Partial Public Class sampleClass
Public Sub sub1()
End Sub
End Class
Partial Public Class sampleClass
Public Sub sub2()
End Sub
End Class
De twee gedeeltelijke definities in het voorgaande voorbeeld kunnen zich in hetzelfde bronbestand of in twee verschillende bronbestanden bevinden.