Kelas Koleksi Web-Extension
Kelas Koleksi Web-Extension
Panduan ini menunjukkan bagaimana empat kelas koleksi ekstensi web di Aspose.Words FOSS untuk .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, dan WebExtensionReferenceCollection — berbagi satu kontrak koleksi melalui kelas abstrak BaseWebExtensionCollection kelas dasar. Untuk memahami apa yang sebenarnya diwakili oleh task pane, binding, dan properti ekstensi web, lihat Ekstensi Web panduan; halaman ini hanya mencakup API kontainer yang mereka semua bagikan.
BaseWebExtensionCollection: Satu Kontrak, Empat Koleksi
BaseWebExtensionCollection adalah kelas dasar untuk TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, dan WebExtensionReferenceCollection. Ia mengimplementasikan IEnumerable<T> dan mendefinisikan setiap anggota yang diekspose oleh keempat koleksi konkret ini — tidak ada dari keempat subkelas yang mendeklarasikan metode atau properti tambahan di luar apa yang disediakan oleh kelas dasar.
Menambahkan, Menghapus, dan Menghitung Item
Add(item) menambahkan item yang ditentukan ke dalam koleksi. Clear() menghapus semua elemen. Remove(index) menghapus item pada indeks yang ditentukan — ia menerima parameter index posisi, bukan referensi item, sehingga menghapus item tertentu berarti pertama-tama menemukan indeksnya. Count melaporkan jumlah elemen yang saat ini ada dalam koleksi.
Mengeumerasi Koleksi
GetEnumerator() mengembalikan enumerator yang dapat mengiterasi koleksi, sehingga setiap koleksi yang diturunkan dari BaseWebExtensionCollection mendukung loop foreach atas item-itemnya tanpa kode iterasi yang spesifik tipe.
Tips dan Praktik Terbaik
- Karena keempat koleksi berbagi kontrak dasar yang sama, kode yang ditulis terhadap anggota
Add,Clear,Remove,Count, danGetEnumeratormilikBaseWebExtensionCollectionberfungsi secara seragam di seluruhTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollection, danWebExtensionReferenceCollection. Remove(index)menerima indeks posisi — jika Anda hanya memiliki item itu sendiri, enumerasikan koleksi untuk menemukan indeksnya terlebih dahulu, atau lacak indeks saat penyisipan.- Baca
Countsebelum mengiterasi, atauforeachlangsung atas koleksi denganGetEnumerator()daripada mengindeks secara manual, karena kontrak dasar tidak menyediakan getter posisi. - Panggil
Clear()ketika Anda perlu mereset koleksi daripada memanggilRemoveberulang-ulang dalam loop.
Masalah Umum
| Masalah | Penyebab | Perbaiki |
|---|---|---|
Remove tidak menerima item itu sendiri | Remove(index) pada koleksi turunan BaseWebExtensionCollection mengambil indeks posisi, bukan referensi | Temukan indeks item terlebih dahulu (misalnya saat enumerasi), kemudian panggil Remove(index) |
| Iterasi salah satu dari empat koleksi terasa duplikat di seluruh tipe | Setiap koleksi adalah tipe konkret terpisah, namun semuanya berbagi anggota BaseWebExtensionCollection | Tuliskan logika iterasi atau utilitas bersama sekali terhadap anggota Add, Clear, Remove, Count, dan GetEnumerator yang umum bagi keempatnya |
| Tidak yakin tipe koleksi konkret mana yang diperlukan oleh potongan kode | Empat koleksi diekspos dari properti yang berbeda pada WebExtension dan Document | Periksa Ekstensi Web panduan tentang properti mana yang mengembalikan tipe koleksi mana |
FAQ
Mengapa empat koleksi ekstensi web berperilaku sama?
Semua mereka diturunkan dari kelas dasar abstrak yang sama, BaseWebExtensionCollection, yang mendefinisikan Add, Clear, Remove, Count, dan GetEnumerator — tidak ada dari empat subclass yang menambahkan anggota mereka sendiri.
Bagaimana cara menghapus item tertentu dari salah satu koleksi ini?
Panggil Remove(index) dengan indeks posisi item — temukan indeksnya dengan menghitung koleksi terlebih dahulu jika Anda hanya memiliki referensi item.
Apakah saya dapat mengiterasi salah satu dari empat koleksi ini dengan cara yang sama?
Ya — keempatnya mengimplementasikan IEnumerable<T> hingga BaseWebExtensionCollection, jadi GetEnumerator() / foreach berfungsi identik di antara mereka.
Di mana saya dapat mempelajari apa yang sebenarnya diwakili oleh item WebExtensionBinding atau TaskPane?
Lihat Ekstensi Web panduan — halaman ini hanya membahas perilaku kontainer koleksi bersama, bukan objek domain yang disimpan koleksi.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
BaseWebExtensionCollection | Kelas dasar abstrak yang dibagikan oleh semua empat tipe koleksi ekstensi web |
BaseWebExtensionCollection.Add(item) | Menambahkan item ke koleksi |
BaseWebExtensionCollection.Clear() | Menghapus semua elemen dari koleksi |
BaseWebExtensionCollection.Remove(index) | Menghapus item pada indeks yang ditentukan |
BaseWebExtensionCollection.GetEnumerator() | Mengembalikan enumerator untuk mengiterasi koleksi |
BaseWebExtensionCollection.Count | Jumlah elemen dalam koleksi |
TaskPaneCollection | Konkret BaseWebExtensionCollection dari TaskPane item |
WebExtensionBindingCollection | Konkret BaseWebExtensionCollection dari WebExtensionBinding item |
WebExtensionPropertyCollection | Konkrit BaseWebExtensionCollection dari WebExtensionProperty item |
WebExtensionReferenceCollection | Konkrit BaseWebExtensionCollection dari WebExtensionReference item |