Web-Extension Collectieklassen

Web-Extension Collectieklassen

Web-Extensie Collectieklassen

Deze gids laat zien hoe de vier web-extensie verzamelingsklassen in Aspose.Words FOSS voor .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, en WebExtensionReferenceCollection — een enkel verzamelingscontract delen via de abstracte BaseWebExtensionCollection basisklasse. Voor wat taakvensters, bindings en web-extensie-eigenschappen daadwerkelijk vertegenwoordigen, zie de Webextensies gids; deze pagina behandelt alleen de container API die ze allemaal delen.


BaseWebExtensionCollection: Eén contract, vier collecties

BaseWebExtensionCollection is de basisklasse voor TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection en WebExtensionReferenceCollection. Het implementeert IEnumerable<T> en definieert elk lid dat deze vier concrete collecties blootstellen — geen van de vier subklassen verklaart extra methoden of eigenschappen van zichzelf, buiten wat de basisklasse biedt.


Items toevoegen, verwijderen en tellen

Add(item) voegt het opgegeven item toe aan de collectie. Clear() verwijdert alle elementen. Remove(index) verwijdert het item op de opgegeven index — het neemt een positionele index, geen itemreferentie, dus het verwijderen van een specifiek item betekent eerst de index ervan vinden. Count rapporteert het aantal elementen dat momenteel in de collectie aanwezig is.


Een collectie enumereren

GetEnumerator() retourneert een enumerator die door de collectie kan itereren, zodat elke BaseWebExtensionCollection-afgeleide collectie een foreach-lus over zijn items ondersteunt zonder type-specifieke iteratiecode.


Tips en best practices

  • Omdat alle vier collecties hetzelfde basiscontract delen, werkt code die tegen de Add, Clear, Remove, Count en GetEnumerator leden van BaseWebExtensionCollection is geschreven, uniform over TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection en WebExtensionReferenceCollection.
  • Remove(index) neemt een positionele index — als je alleen het item zelf hebt, doorloop dan de collectie om eerst de index te vinden, of houd de index bij op het moment van invoegen.
  • Lees Count voordat je iterereert, of foreach direct over de collectie met GetEnumerator() in plaats van handmatig te indexeren, aangezien het basiscontract geen positionele getter blootstelt.
  • Roep Clear() aan wanneer je een collectie moet resetten in plaats van herhaaldelijk Remove aan te roepen in een lus.

Veelvoorkomende problemen

ProbleemOorzaakOplossen
Remove accepteert het item zelf nietRemove(index) op door BaseWebExtensionCollection afgeleide collecties neemt een positionele index, geen referentieZoek eerst de index van het item (bijvoorbeeld tijdens het doorlopen), roep daarna Remove(index) aan
Het itereren over een van de vier collecties voelt dubbelop over de typen heenElke collectie is een apart concreet type, maar ze delen allemaal de leden van BaseWebExtensionCollectionSchrijf gedeelde iteratie- of hulplogica één keer voor de leden Add, Clear, Remove, Count en GetEnumerator die gemeenschappelijk zijn voor alle vier
Onzeker welk concreet collectietype een stuk code nodig heeftDe vier collecties worden blootgesteld via verschillende eigenschappen op WebExtension en DocumentBekijk de Webextensies handleiding voor welke eigenschap welk collectietype retourneert

FAQ

Waarom gedragen de vier web-extension-collecties zich op dezelfde manier?

Ze erven allemaal van dezelfde abstracte basisklasse, BaseWebExtensionCollection, die Add, Clear, Remove, Count en GetEnumerator definieert — geen van de vier subklassen voegt eigen leden toe.

Hoe verwijder ik een specifiek item uit een van deze collecties?

Roep Remove(index) aan met de positionele index van het item — zoek de index op door eerst de collectie te enumereren als je alleen de itemreferentie hebt.

Kan ik een van deze vier collecties op dezelfde manier itereren?

Ja — alle vier implementeren IEnumerable<T> tot en met BaseWebExtensionCollection, dus GetEnumerator() / foreach werkt identiek voor hen.

Waar kom ik te weten wat een WebExtensionBinding of TaskPane item eigenlijk vertegenwoordigt?

Zie de Webextensies handleiding — deze pagina behandelt alleen het gedrag van de gedeelde collectiecontainer, niet de domeinobjecten die de collecties bevatten.


API Reference Samenvatting

Klasse/MethodeBeschrijving
BaseWebExtensionCollectionAbstracte basisklasse die door alle vier web-extensie collectie-typen wordt gedeeld
BaseWebExtensionCollection.Add(item)Voegt een item toe aan de collectie
BaseWebExtensionCollection.Clear()Verwijdert alle elementen uit de collectie
BaseWebExtensionCollection.Remove(index)Verwijdert het item op de opgegeven index
BaseWebExtensionCollection.GetEnumerator()Retourneert een enumerator voor het itereren van de collectie
BaseWebExtensionCollection.CountAantal elementen in de collectie
TaskPaneCollectionConcrete BaseWebExtensionCollection van TaskPane items
WebExtensionBindingCollectionConcrete BaseWebExtensionCollection van WebExtensionBinding items
WebExtensionPropertyCollectionConcrete BaseWebExtensionCollection van WebExtensionProperty items
WebExtensionReferenceCollectionConcrete BaseWebExtensionCollection van WebExtensionReference items

Zie ook

 Nederlands