کلاسهای مجموعه وب-اکستنشن
کلاسهای مجموعهٔ Web-Extension
این راهنما نشان میدهد که چگونه چهار کلاس مجموعهٔ افزونهٔ وب در Aspose.Words FOSS برای .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection، و WebExtensionReferenceCollection — یک قرارداد مجموعهٔ منفرد را از طریق کلاس انتزاعی به اشتراک میگذارند BaseWebExtensionCollection کلاس پایه. برای اینکه پنلهای کاری، بایندینگها و ویژگیهای افزونهٔ وب در واقع چه معنایی دارند، ببینید افزونههای وب راهنما؛ این صفحه فقط API حامل را که همه آنها بهاشتراک میگذارند پوشش میدهد.
BaseWebExtensionCollection: یک قرارداد، چهار مجموعه
BaseWebExtensionCollection کلاس پایه برای TaskPaneCollection، WebExtensionBindingCollection، WebExtensionPropertyCollection و WebExtensionReferenceCollection است. این کلاس IEnumerable<T> را پیادهسازی میکند و هر عضو را که این چهار مجموعهٔ ملموس افشا میکنند تعریف میکند — هیچیک از چهار زیرکلاس روشها یا ویژگیهای اضافی خود را فراتر از آنچه کلاس پایه فراهم میکند، اعلام نمیکند.
اضافه کردن، حذف کردن و شمارش آیتمها
Add(item) مورد مشخصشده را به مجموعه اضافه میکند. Clear() تمام عناصر را حذف میکند. Remove(index) مورد را در ایندکس مشخصشده حذف میکند — این متد یک index موقعیتی میگیرد، نه یک ارجاع به مورد، بنابراین حذف یک مورد خاص ابتدا نیاز به یافتن ایندکس آن دارد. Count تعداد عناصری که در حال حاضر در مجموعه هستند را گزارش میدهد.
فهرستگذاری یک مجموعه
GetEnumerator() یک شمارنده (enumerator) برمیگرداند که میتواند از مجموعه عبور کند، بنابراین هر مجموعهای که از BaseWebExtensionCollection مشتق شده باشد، یک حلقه foreach بر روی آیتمهای آن را بدون نیاز به کد تکرار خاص نوع پشتیبانی میکند.
نکات و بهترین روشها
- از آنجا که هر چهار مجموعه همان قرارداد پایه را به اشتراک میگذارند، کدی که بر اساس اعضای
Add،Clear،Remove،CountوGetEnumeratorBaseWebExtensionCollectionنوشته شده است، بهصورت یکنواخت درTaskPaneCollection،WebExtensionBindingCollection،WebExtensionPropertyCollectionوWebExtensionReferenceCollectionعمل میکند. Remove(index)یک شاخص موقعیتی میگیرد — اگر فقط خود آیتم را داشته باشید، ابتدا مجموعه را شمارش کنید تا شاخص آن را پیدا کنید، یا در زمان افزودن، شاخص را پیگیری کنید.- قبل از تکرار،
Countرا بخوانید، یا بهجای ایندکسگذاری دستی، مستقیماً باGetEnumerator()روی مجموعهforeachکنید، زیرا قرارداد پایه یک getter موقعیتی را افشا نمیکند. - وقتی نیاز به بازنشانی یک مجموعه دارید، بهجای فراخوانی مکرر
Removeدر یک حلقه،Clear()را صدا بزنید.
مشکلات رایج
| مشکل | دلیل | اصلاح |
|---|---|---|
Remove آیتم را به خودی خود نمیپذیرد | Remove(index) روی مجموعههای مشتقشده از BaseWebExtensionCollection یک شاخص موقعیتی میگیرد، نه یک ارجاع | ابتدا شاخص آیتم را پیدا کنید (مثلاً هنگام شمارش)، سپس Remove(index) را صدا بزنید |
| تکرار یکی از چهار مجموعه حس تکراری در انواع مختلف دارد | هر مجموعه یک نوع ملموس جداگانه است، اما همه اعضای BaseWebExtensionCollection را به اشتراک دارند | منطق تکرار یا ابزارهای مشترک را یکبار بنویسید که بر روی اعضای Add، Clear، Remove، Count و GetEnumerator که برای همه چهار مورد مشترک است، اعمال شود |
| مطمئن نیستید کدام نوع مجموعهٔ ملموس یک تکه کد نیاز دارد | چهار مجموعه از ویژگیهای متفاوت در WebExtension و Document ارائه میشوند | بررسی کنید Web Extensions راهنمای اینکه کدام ویژگی، کدام نوع مجموعه را برمیگرداند |
FAQ
چرا چهار مجموعهٔ افزونهٔ وب رفتار یکسانی دارند؟
همهٔ آنها از یک کلاس پایهٔ انتزاعی به نام BaseWebExtensionCollection ارث میبرند که Add، Clear، Remove، Count و GetEnumerator را تعریف میکند — هیچیک از این چهار زیرکلاس عضو خاص خود را اضافه نمیکند.
چگونه میتوانم یک مورد خاص را از یکی از این مجموعهها حذف کنم؟
با Remove(index) و اندیس موقعیتی مورد فراخوانی کنید — اگر فقط مرجع مورد را دارید، ابتدا با شمارش مجموعه، اندیس را پیدا کنید.
آیا میتوانم هر یک از این چهار مجموعه را به همان روش پیمایش کنم؟
بله — همهٔ چهار مجموعه IEnumerable<T> تا BaseWebExtensionCollection را پیادهسازی میکنند، بنابراین GetEnumerator() / foreach به طور یکسان در میان آنها کار میکند.
از کجا میتوانم بفهمم یک مورد WebExtensionBinding یا TaskPane دقیقاً چه چیزی را نشان میدهد؟
به افزونههای وب راهنما — این صفحه فقط رفتار مخزن مشترک مجموعه را پوشش میدهد، نه اشیاء دامنهای که مجموعهها نگهداری میکنند.
API Reference خلاصه
| کلاس/متد | توضیح |
|---|---|
BaseWebExtensionCollection | کلاس پایهٔ انتزاعی که توسط تمام چهار نوع مجموعهٔ افزونهٔ وب بهاشتراک گذاشته شده است |
BaseWebExtensionCollection.Add(item) | یک مورد را به مجموعه اضافه میکند |
BaseWebExtensionCollection.Clear() | تمام عناصر را از مجموعه حذف میکند |
BaseWebExtensionCollection.Remove(index) | مورد موجود در ایندکس مشخص شده را حذف میکند |
BaseWebExtensionCollection.GetEnumerator() | یک شمارنده برای پیمایش مجموعه باز میگرداند |
BaseWebExtensionCollection.Count | تعداد عناصر در مجموعه |
TaskPaneCollection | مورد خاص BaseWebExtensionCollection از TaskPane مورد |
WebExtensionBindingCollection | مورد BaseWebExtensionCollection از WebExtensionBinding آیتم |
WebExtensionPropertyCollection | مورد BaseWebExtensionCollection از WebExtensionProperty آیتم |
WebExtensionReferenceCollection | مورد BaseWebExtensionCollection از WebExtensionReference آیتم |