מחלקות האוסף של Web-Extension
מחלקות איסוף של Web-Extension
מדריך זה מציג כיצד ארבעת מחלקות האוסף של הרחבות האינטרנט ב-Aspose.Words FOSS עבור .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, ו WebExtensionReferenceCollection — חולקות חוזה אוסף יחיד דרך המחלקה המופשטת BaseWebExtensionCollection מחלקה בסיסית. עבור מה שמייצגות פאנלים של משימות, קישורים, ומאפייני הרחבות אינטרנט, ראה את Web Extensions המדריך; דף זה מכסה רק את ה-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)מקבל אינדקס מיקומי — אם יש ברשותך רק את הפריט עצמו, יש לעבור על האוסף כדי למצוא את האינדקס שלו תחילה, או לעקוב אחרי האינדקס בזמן ההכנסה.- קרא את
Countלפני האיטרציה, אוforeachעל האוסף ישירות עםGetEnumerator()במקום לבצע אינדקסינג ידני, מכיוון שהחוזה הבסיסי אינו חושף getter מיקומי. - התקשר ל-
Clear()כשאתה צריך לאפס אוסף במקום לקרוא באופן חוזר ל-Removeבלולאה.
בעיות נפוצות
| בעיה | גורם | תיקון |
|---|---|---|
Remove אינו מקבל את הפריט עצמו | Remove(index) על אוספים שמקורם ב-BaseWebExtensionCollection מקבל אינדקס מיקומי, ולא הפנייה | מצא ראשית את האינדקס של הפריט (למשל בעת ספירה), ואז קרא ל-Remove(index) |
| איטרציה על אחד מארבעת האוספים מרגישה משוכפלת בין סוגים | כל אוסף הוא טיפוס קונקרטי נפרד, אך כולם חולקים את החברים של BaseWebExtensionCollection | כתוב לוגיקה משותפת של איטרציה או כלי פעם אחת על החברים Add, Clear, Remove, Count ו-GetEnumerator המשותפים לכל הארבעה |
| לא בטוח איזה טיפוס אוסף קונקרטי נדרש לקוד | ארבעת האוספים נחשפים ממאפיינים שונים ב-WebExtension וב-Document | בדוק את הרחבות אינטרנט מדריך לאיזה מאפיין מחזיר איזה סוג של אוסף |
FAQ
למה ארבעת האוספים של הרחבות האינטרנט מתנהגים באותו האופן?
כולם יורשים מהמחלקה הבסיסית המופשטת הזו, BaseWebExtensionCollection, שמגדירה את Add, Clear, Remove, Count ו-GetEnumerator — אף אחד מארבעת תתי-המחלקות אינו מוסיף חברים משלו.
איך אני מסיר פריט ספציפי מאחד האוספים האלה?
קרא ל-Remove(index) עם האינדקס המיקומי של הפריט — מצא את האינדקס על-ידי מיפוי האוסף תחילה אם יש ברשותך רק את הפניה לפריט.
האם אני יכול לעבור על כל אחד מארבעת האוספים האלה באותו האופן?
כן — כל הארבעה מיישמים את IEnumerable<T> עד BaseWebExtensionCollection, ולכן GetEnumerator() / foreach פועלים באופן זהה על כולם.
היכן אני יכול ללמוד מה פריט WebExtensionBinding או TaskPane מייצג בפועל?
ראה את הרחבות אינטרנט מדריך — דף זה מכסה רק את התנהגות מכולת האוספים המשותפת, ולא את אובייקטי התחום שהאוספים מחזיקים.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
BaseWebExtensionCollection | מחלקת בסיס מופשטת המשותפת לכל ארבעת סוגי האוספים של web-extension |
BaseWebExtensionCollection.Add(item) | מוסיף פריט לאוסף |
BaseWebExtensionCollection.Clear() | מסיר את כל האלמנטים מהאוסף |
BaseWebExtensionCollection.Remove(index) | מסיר את הפריט באינדקס שצוין |
BaseWebExtensionCollection.GetEnumerator() | מחזיר enumerator לצורך איטרציה על האוסף |
BaseWebExtensionCollection.Count | מספר האלמנטים באוסף |
TaskPaneCollection | Concrete BaseWebExtensionCollection של TaskPane פריטים |
WebExtensionBindingCollection | Concrete BaseWebExtensionCollection של WebExtensionBinding פריטים |
WebExtensionPropertyCollection | קונקרטי BaseWebExtensionCollection של WebExtensionProperty פריטים |
WebExtensionReferenceCollection | קונקרטי BaseWebExtensionCollection של WebExtensionReference פריטים |