Κλάσεις Συλλογής Web-Extension

Κλάσεις Συλλογής Web-Extension

Κλάσεις Συλλογής Web-Extension

Αυτός ο οδηγός δείχνει πώς οι τέσσερις κλάσεις συλλογής web-extension στο Aspose.Words FOSS για .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, και WebExtensionReferenceCollection — μοιράζονται ένα ενιαίο συμβόλαιο συλλογής μέσω του αφηρημένου BaseWebExtensionCollection βασική κλάση. Για το τι πραγματικά αντιπροσωπεύουν τα task panes, bindings και ιδιότητες web extension, δείτε το Web Extensions οδηγός; αυτή η σελίδα καλύπτει μόνο το container API που μοιράζονται όλοι.


BaseWebExtensionCollection: Ένα Συμβόλαιο, Τέσσερις Συλλογές

BaseWebExtensionCollection είναι η βασική κλάση για TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection και WebExtensionReferenceCollection. Υλοποιεί το IEnumerable<T> και ορίζει κάθε μέλος που εκθέτουν αυτές οι τέσσερις συγκεκριμένες συλλογές — κανένα από τα τέσσερα υποκατηγορίες δεν δηλώνει πρόσθετες μεθόδους ή ιδιότητες εκτός από αυτές που παρέχει η βασική κλάση.


Προσθήκη, Αφαίρεση και Καταμέτρηση Στοιχείων

Add(item) προσθέτει το καθορισμένο στοιχείο στη συλλογή. Clear() αφαιρεί όλα τα στοιχεία. Remove(index) αφαιρεί το στοιχείο στον καθορισμένο δείκτη — παίρνει μια θέση index, όχι μια αναφορά στοιχείου, έτσι η αφαίρεση ενός συγκεκριμένου στοιχείου σημαίνει πρώτα τον εντοπισμό του δείκτη του. Count αναφέρει τον αριθμό των στοιχείων που βρίσκονται αυτή τη στιγμή στη συλλογή.


Απαρίθμηση μιας Συλλογής

GetEnumerator() επιστρέφει έναν enumerator που μπορεί να διατρέξει τη συλλογή, έτσι οποιαδήποτε συλλογή που προέρχεται από BaseWebExtensionCollection υποστηρίζει έναν foreach βρόχο πάνω στα στοιχεία της χωρίς κώδικα επανάληψης ειδικού τύπου.


Συμβουλές και βέλτιστες πρακτικές

  • Επειδή και οι τέσσερις συλλογές μοιράζονται το ίδιο βασικό συμβόλαιο, ο κώδικας γραμμένος εναντίον των μελών Add, Clear, Remove, Count και GetEnumerator του BaseWebExtensionCollection λειτουργεί ομοιόμορφα σε TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection και WebExtensionReferenceCollection.
  • Remove(index) παίρνει έναν δείκτη θέσης — αν έχετε μόνο το ίδιο το στοιχείο, enumerate τη συλλογή για να βρείτε πρώτα τον δείκτη του, ή παρακολουθήστε τον δείκτη κατά τη στιγμή της εισαγωγής.
  • Διαβάστε το Count πριν την επανάληψη, ή foreach απευθείας στη συλλογή με το GetEnumerator() αντί για χειροκίνητη πρόσβαση με δείκτη, καθώς το βασικό συμβόλαιο δεν εκθέτει getter θέσης.
  • Καλέστε το Clear() όταν χρειάζεται να επαναφέρετε μια συλλογή αντί να καλείτε επανειλημμένα το Remove σε βρόχο.

Συνηθισμένα προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
Remove δεν δέχεται το ίδιο αντικείμενοRemove(index) σε συλλογές που προέρχονται από BaseWebExtensionCollection δέχεται έναν διατεταγμένο δείκτη, όχι αναφοράΒρείτε πρώτα το δείκτη του αντικειμένου (π.χ. κατά την αρίθμηση), μετά καλέστε το Remove(index)
Η επανάληψη μιας από τις τέσσερις συλλογές φαίνεται επαναλαμβανόμενη μεταξύ των τύπωνΚάθε συλλογή είναι ξεχωριστός συγκεκριμένος τύπος, αλλά όλες μοιράζονται τα μέλη του BaseWebExtensionCollectionΓράψτε τη κοινή λογική επανάληψης ή βοηθητική μία φορά χρησιμοποιώντας τα μέλη Add, Clear, Remove, Count και GetEnumerator που είναι κοινά σε όλες τις τέσσερις
Αβέβαιος ποιος συγκεκριμένος τύπος συλλογής χρειάζεται ένα τμήμα κώδικαΟι τέσσερις συλλογές εκτίθενται από διαφορετικές ιδιότητες στο WebExtension και DocumentΕλέγξτε το Web Extensions οδηγός για το ποια ιδιότητα επιστρέφει ποιο τύπο συλλογής

FAQ

Γιατί οι τέσσερις συλλογές web-extension συμπεριφέρονται με τον ίδιο τρόπο;

Όλες προέρχονται από την ίδια αφηρημένη βασική κλάση, BaseWebExtensionCollection, η οποία ορίζει Add, Clear, Remove, Count και GetEnumerator — κανένα από τις τέσσερις υποκλάσεις δεν προσθέτει δικά της μέλη.

Πώς μπορώ να αφαιρέσω ένα συγκεκριμένο στοιχείο από μία από αυτές τις συλλογές;

Κλήστε το Remove(index) με τον δείκτη θέσης του στοιχείου — εντοπίστε τον δείκτη κάνοντας απαρίθμηση της συλλογής πρώτα εάν έχετε μόνο την αναφορά του στοιχείου.

Μπορώ να διατρέξω οποιαδήποτε από αυτές τις τέσσερις συλλογές με τον ίδιο τρόπο;

Ναι — όλες οι τέσσερις υλοποιούν το IEnumerable<T> έως το BaseWebExtensionCollection, έτσι το GetEnumerator() / foreach λειτουργεί ταυτόσημα σε όλες.

Από πού μπορώ να μάθω τι αντιπροσωπεύει πραγματικά ένα στοιχείο WebExtensionBinding ή TaskPane;

Δείτε το Web Extensions οδηγός — αυτή η σελίδα καλύπτει μόνο τη συμπεριφορά του κοινόχρηστου περιέκτη συλλογής, όχι τα αντικείμενα τομέα που περιέχουν οι συλλογές.


API Reference Σύνοψη

Κλάση/ΜέθοδοςΠεριγραφή
BaseWebExtensionCollectionΑφηρημένη βασική κλάση κοινή για όλους τους τέσσερις τύπους συλλογών web-extension
BaseWebExtensionCollection.Add(item)Προσθέτει ένα στοιχείο στη συλλογή
BaseWebExtensionCollection.Clear()Αφαιρεί όλα τα στοιχεία από τη συλλογή
BaseWebExtensionCollection.Remove(index)Αφαιρεί το στοιχείο στον καθορισμένο δείκτη
BaseWebExtensionCollection.GetEnumerator()Επιστρέφει έναν enumerator για την επανάληψη της συλλογής
BaseWebExtensionCollection.CountΑριθμός στοιχείων στη συλλογή
TaskPaneCollectionΣυγκεκριμένο BaseWebExtensionCollection από TaskPane αντικείμενα
WebExtensionBindingCollectionΣυγκεκριμένο BaseWebExtensionCollection από WebExtensionBinding αντικείμενα
WebExtensionPropertyCollectionΣυγκεκριμένο BaseWebExtensionCollection από WebExtensionProperty στοιχεία
WebExtensionReferenceCollectionΣυγκεκριμένο BaseWebExtensionCollection από WebExtensionReference στοιχεία

Δείτε επίσης

 Ελληνικά