מחלקות האוסף של Web-Extension

מחלקות האוסף של 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מספר האלמנטים באוסף
TaskPaneCollectionConcrete BaseWebExtensionCollection של TaskPane פריטים
WebExtensionBindingCollectionConcrete BaseWebExtensionCollection של WebExtensionBinding פריטים
WebExtensionPropertyCollectionקונקרטי BaseWebExtensionCollection של WebExtensionProperty פריטים
WebExtensionReferenceCollectionקונקרטי BaseWebExtensionCollection של WebExtensionReference פריטים

ראה גם

 עברית