คลาสคอลเลกชัน Web-Extension
คลาสคอลเลกชันของส่วนขยายเว็บ
คู่มือนี้แสดงวิธีการที่คลาสการเก็บรวบรวมเว็บส่วนขยายสี่คลาสใน Aspose.Words FOSS สำหรับ .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, และ WebExtensionReferenceCollection — แบ่งปันสัญญาการเก็บรวบรวมเดียวผ่าน abstract BaseWebExtensionCollection คลาสฐาน สำหรับสิ่งที่ task panes, bindings, และคุณสมบัติเว็บส่วนขยายแท้จริงแสดงถึง, ดูที่ Web Extensions คู่มือ; หน้านี้ครอบคลุมเฉพาะ API ตัวคอนเทนเนอร์ที่พวกเขาทั้งหมดแชร์.
BaseWebExtensionCollection: สัญญาเดียว, สี่คอลเลกชัน
BaseWebExtensionCollection เป็นคลาสฐานสำหรับ TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection และ WebExtensionReferenceCollection. มัน implements IEnumerable<T> และกำหนดทุกสมาชิกที่คอลเลกชัน concrete สี่ชุดนี้เปิดเผย — ไม่มี subclass ใดสี่ชุดประกาศเมธอดหรือพรอพเพอร์ตีเพิ่มเติมนอกเหนือจากที่คลาสฐานให้ไว้.
การเพิ่ม, การลบ, และการนับรายการ
Add(item) เพิ่มรายการที่ระบุไปยังคอลเลกชัน. Clear() ลบทุกองค์ประกอบ. Remove(index) ลบรายการที่ตำแหน่ง index ที่ระบุ — มันรับ index แบบตำแหน่ง ไม่ใช่การอ้างอิงรายการ ดังนั้นการลบรายการเฉพาะหมายถึงต้องหาตำแหน่ง index ของมันก่อน. Count รายงานจำนวนขององค์ประกอบที่อยู่ในคอลเลกชันในขณะนี้.
การวนรอบคอลเลกชัน
GetEnumerator() คืนค่า enumerator ที่สามารถวนผ่าน collection ได้ ดังนั้น collection ที่สืบทอดจาก BaseWebExtensionCollection ใดก็สนับสนุนการวนลูป foreach บนรายการของมันโดยไม่ต้องเขียนโค้ดการวนที่เจาะจงประเภท.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- เนื่องจากคอลเลกชันทั้งสี่แชร์สัญญาฐานเดียวกัน โค้ดที่เขียนต่อสมาชิก
Add,Clear,Remove,CountและGetEnumeratorของBaseWebExtensionCollectionจะทำงานอย่างสอดคล้องกันในTaskPaneCollection,WebExtensionBindingCollection,WebExtensionPropertyCollectionและWebExtensionReferenceCollection. Remove(index)รับตำแหน่ง index — หากคุณมีเฉพาะรายการเอง ให้ทำการ enumerate collection เพื่อหาตำแหน่ง index ก่อน หรือทำการติดตาม index ขณะแทรก.- อ่าน
Countก่อนทำการวน, หรือforeachบน collection โดยตรงด้วยGetEnumerator()แทนการเข้าถึงด้วย index ด้วยตนเอง, เนื่องจากสัญญาฐานไม่เปิดเผย positional getter. - เรียก
Clear()เมื่อคุณต้องการรีเซ็ต collection แทนการเรียกRemoveซ้ำในลูป.
ปัญหาที่พบบ่อย
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
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 นั้นแท้จริงหมายถึงอะไรได้จากที่ไหน?
ดู Web Extensions คู่มือ — หน้านี้ครอบคลุมเฉพาะพฤติกรรมของคอนเทนเนอร์คอลเลกชันที่ใช้ร่วมกัน ไม่ได้รวมถึงวัตถุโดเมนที่คอลเลกชันถืออยู่.
API Reference สรุป
| Class/Method | คำอธิบาย |
|---|---|
BaseWebExtensionCollection | คลาสฐานเชิงนามธรรมที่ใช้ร่วมกันโดยประเภทคอลเลกชันส่วนขยายเว็บสี่ประเภท |
BaseWebExtensionCollection.Add(item) | เพิ่มรายการลงในคอลเลกชัน |
BaseWebExtensionCollection.Clear() | ลบทุกองค์ประกอบออกจากคอลเลกชัน |
BaseWebExtensionCollection.Remove(index) | ลบรายการที่ตำแหน่งดัชนีที่ระบุ |
BaseWebExtensionCollection.GetEnumerator() | คืน enumerator สำหรับการวนซ้ำ collection |
BaseWebExtensionCollection.Count | จำนวนขององค์ประกอบใน collection |
TaskPaneCollection | Concrete BaseWebExtensionCollection ของ TaskPane รายการ |
WebExtensionBindingCollection | Concrete BaseWebExtensionCollection ของ WebExtensionBinding รายการ |
WebExtensionPropertyCollection | ค่าเฉพาะ BaseWebExtensionCollection ของรายการ WebExtensionProperty |
WebExtensionReferenceCollection | ค่าเฉพาะ BaseWebExtensionCollection ของรายการ WebExtensionReference |