Clase de colecție Web-Extension
Clasele de colecție Web-Extension
Acest ghid arată cum cele patru clase de colecție de extensii web din Aspose.Words FOSS pentru .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, și WebExtensionReferenceCollection — partajează un singur contract de colecție prin abstract BaseWebExtensionCollection clasă de bază. Pentru a vedea ce reprezintă panourile de sarcini, legăturile și proprietățile extensiilor web, vezi Extensii Web ghid; această pagină acoperă doar containerul API pe care îl împărtășesc toate.
BaseWebExtensionCollection: Un contract, patru colecții
BaseWebExtensionCollection este clasa de bază pentru TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection și WebExtensionReferenceCollection. Ea implementează IEnumerable<T> și definește fiecare membru pe care aceste patru colecții concrete îl expun — niciunul dintre cele patru subclase nu declară metode sau proprietăți suplimentare în afara celor furnizate de clasa de bază.
Adăugarea, eliminarea și numărarea elementelor
Add(item) adaugă elementul specificat în colecție. Clear() elimină toate elementele. Remove(index) elimină elementul de la indexul specificat — primește un index pozițional, nu o referință la element, astfel că eliminarea unui element specific înseamnă mai întâi localizarea indexului său. Count raportează numărul de elemente aflate în prezent în colecție.
Enumerarea unei colecții
GetEnumerator() returnează un enumerator care poate itera prin colecție, astfel că orice colecție derivată din BaseWebExtensionCollection suportă o buclă foreach peste elementele sale fără cod de iterare specific tipului.
Sfaturi și cele mai bune practici
- Deoarece toate cele patru colecții împărtășesc același contract de bază, codul scris împotriva membrilor
Add,Clear,Remove,CountșiGetEnumeratorai luiBaseWebExtensionCollectionfuncționează uniform peTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionșiWebExtensionReferenceCollection. Remove(index)primește un index pozițional — dacă ai doar elementul în sine, enumeră colecția pentru a-i găsi mai întâi indexul, sau urmărește indexul în momentul inserării.- Citește
Countînainte de a itera, sauforeachdirect peste colecție cuGetEnumerator()în loc să indexezi manual, deoarece contractul de bază nu expune un getter pozițional. - Apelează
Clear()când ai nevoie să resetezi o colecție în loc să apelezi repetatRemoveîntr-o buclă.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
Remove nu acceptă elementul în sine | Remove(index) pe colecțiile derivate din BaseWebExtensionCollection ia un index pozițional, nu o referință | Mai întâi găsește indexul elementului (de exemplu în timpul enumerării), apoi apelează Remove(index) |
| Iterarea uneia dintre cele patru colecții pare duplicată între tipuri | Fiecare colecție este un tip concret separat, dar toate împărtășesc membrii lui BaseWebExtensionCollection | Scrie o singură dată iterația sau logica utilitară pentru membrii Add, Clear, Remove, Count și GetEnumerator comuni tuturor celor patru |
| Nu sunt sigur ce tip concret de colecție îi trebuie unei bucăți de cod | Cele patru colecții sunt expuse din proprietăți diferite pe WebExtension și Document | Verifică Web Extensions ghid pentru care proprietate returnează ce tip de colecție |
FAQ
De ce se comportă în același mod cele patru colecții de extensii web?
Toate derivă din aceeași clasă de bază abstractă, BaseWebExtensionCollection, care definește Add, Clear, Remove, Count și GetEnumerator — niciuna dintre cele patru subclase nu adaugă membri proprii.
Cum pot elimina un element specific din una dintre aceste colecții?
Apelă Remove(index) cu indicele pozițional al elementului — localizează indicele enumerând colecția mai întâi dacă ai doar referința la element.
Pot itera oricare dintre aceste patru colecții în același mod?
Da — toate cele patru implementează IEnumerable<T> prin BaseWebExtensionCollection, astfel încât GetEnumerator() / foreach funcționează identic în toate.
Unde pot afla ce reprezintă de fapt un element WebExtensionBinding sau TaskPane?
Vezi Web Extensions ghid — această pagină acoperă doar comportamentul containerului de colecție partajat, nu obiectele de domeniu pe care colecțiile le conțin.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
BaseWebExtensionCollection | Clasă de bază abstractă partajată de toate cele patru tipuri de colecții web-extension |
BaseWebExtensionCollection.Add(item) | Adaugă un element la colecție |
BaseWebExtensionCollection.Clear() | Elimină toate elementele din colecție |
BaseWebExtensionCollection.Remove(index) | Elimină elementul de la indexul specificat |
BaseWebExtensionCollection.GetEnumerator() | Returnează un enumerator pentru iterarea colecției |
BaseWebExtensionCollection.Count | Numărul de elemente din colecție |
TaskPaneCollection | Concret BaseWebExtensionCollection de TaskPane elemente |
WebExtensionBindingCollection | Concret BaseWebExtensionCollection de WebExtensionBinding elemente |
WebExtensionPropertyCollection | Concret BaseWebExtensionCollection din WebExtensionProperty elemente |
WebExtensionReferenceCollection | Concret BaseWebExtensionCollection din WebExtensionReference elemente |