Classi di raccolta Web-Extension

Classi di raccolta Web-Extension

Classi di raccolta Web-Extension

Questa guida mostra come le quattro classi di raccolta di estensioni web in Aspose.Words FOSS per .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, e WebExtensionReferenceCollection — condividono un unico contratto di raccolta tramite l’astratta BaseWebExtensionCollection classe base. Per capire cosa rappresentano realmente i riquadri attività, i binding e le proprietà delle estensioni web, vedere il Web Extensions guida; questa pagina tratta solo il contenitore API che tutti condividono.


BaseWebExtensionCollection: Un contratto, quattro raccolte

BaseWebExtensionCollection è la classe base per TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection e WebExtensionReferenceCollection. Implementa IEnumerable<T> e definisce ogni membro che queste quattro collezioni concrete espongono — nessuna delle quattro sottoclassi dichiara metodi o proprietà aggiuntivi rispetto a quanto fornito dalla classe base.


Aggiungere, rimuovere e contare gli elementi

Add(item) aggiunge l’elemento specificato alla raccolta. Clear() rimuove tutti gli elementi. Remove(index) rimuove l’elemento all’indice specificato — richiede un index posizionale, non un riferimento all’elemento, quindi rimuovere un elemento specifico significa prima individuarne l’indice. Count restituisce il numero di elementi attualmente presenti nella raccolta.


Enumerare una raccolta

GetEnumerator() restituisce un enumeratore che può iterare attraverso la collezione, quindi qualsiasi collezione derivata da BaseWebExtensionCollection supporta un ciclo foreach sui suoi elementi senza codice di iterazione specifico per tipo.


Suggerimenti e migliori pratiche

  • Poiché tutte e quattro le collezioni condividono lo stesso contratto di base, il codice scritto contro i membri Add, Clear, Remove, Count e GetEnumerator di BaseWebExtensionCollection funziona in modo uniforme su TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection e WebExtensionReferenceCollection.
  • Remove(index) accetta un indice posizionale — se hai solo l’elemento stesso, enumera la collezione per trovare prima il suo indice, oppure tieni traccia dell’indice al momento dell’inserimento.
  • Leggi Count prima di iterare, oppure foreach direttamente sulla collezione con GetEnumerator() anziché indicizzare manualmente, poiché il contratto di base non espone un getter posizionale.
  • Chiama Clear() quando devi reimpostare una collezione invece di chiamare ripetutamente Remove in un ciclo.

Problemi comuni

ProblemaCausaCorreggi
Remove non accetta l’elemento stessoRemove(index) su collezioni derivate da BaseWebExtensionCollection richiede un indice posizionale, non un riferimentoTrova prima l’indice dell’elemento (ad esempio durante l’enumerazione), poi chiama Remove(index)
Iterare una delle quattro collezioni sembra duplicato tra i tipiOgni collezione è un tipo concreto separato, ma condividono tutti i membri di BaseWebExtensionCollectionScrivi una sola volta la logica di iterazione o di utilità condivisa sui membri Add, Clear, Remove, Count e GetEnumerator comuni a tutte e quattro
Non so quale tipo di collezione concreta serva a un pezzo di codiceLe quattro collezioni sono esposte da proprietà diverse su WebExtension e DocumentControlla il Estensioni Web guida su quale proprietà restituisce quale tipo di collezione

FAQ

Perché le quattro collezioni di estensioni web si comportano allo stesso modo?

Derivano tutti dalla stessa classe base astratta, BaseWebExtensionCollection, che definisce Add, Clear, Remove, Count e GetEnumerator — nessuna delle quattro sottoclassi aggiunge propri membri.

Come rimuovo un elemento specifico da una di queste collezioni?

Chiama Remove(index) con l’indice posizionale dell’elemento — individua l’indice enumerando prima la collezione se hai solo il riferimento all’elemento.

Posso iterare una qualsiasi di queste quattro collezioni nello stesso modo?

Sì — tutte e quattro implementano IEnumerable<T> tramite BaseWebExtensionCollection, quindi GetEnumerator() / foreach funziona identicamente su di esse.

Dove posso apprendere cosa rappresenta effettivamente un elemento WebExtensionBinding o TaskPane?

Vedi il Estensioni Web guida — questa pagina copre solo il comportamento del contenitore di collezioni condiviso, non gli oggetti di dominio che le collezioni contengono.


API Reference Riepilogo

Classe/MetodoDescrizione
BaseWebExtensionCollectionClasse base astratta condivisa da tutti e quattro i tipi di collezione di estensioni web
BaseWebExtensionCollection.Add(item)Aggiunge un elemento alla collezione
BaseWebExtensionCollection.Clear()Rimuove tutti gli elementi dalla collezione
BaseWebExtensionCollection.Remove(index)Rimuove l’elemento all’indice specificato
BaseWebExtensionCollection.GetEnumerator()Restituisce un enumeratore per iterare la collezione
BaseWebExtensionCollection.CountNumero di elementi nella collezione
TaskPaneCollectionConcreto BaseWebExtensionCollection di TaskPane elementi
WebExtensionBindingCollectionConcreto BaseWebExtensionCollection di WebExtensionBinding elementi
WebExtensionPropertyCollectionConcreto BaseWebExtensionCollection di WebExtensionProperty elementi
WebExtensionReferenceCollectionConcreto BaseWebExtensionCollection di WebExtensionReference elementi

Vedi anche

 Italiano