คลาสคอลเลกชัน Web-Extension

คลาสคอลเลกชัน 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
TaskPaneCollectionConcrete BaseWebExtensionCollection ของ TaskPane รายการ
WebExtensionBindingCollectionConcrete BaseWebExtensionCollection ของ WebExtensionBinding รายการ
WebExtensionPropertyCollectionค่าเฉพาะ BaseWebExtensionCollection ของรายการ WebExtensionProperty
WebExtensionReferenceCollectionค่าเฉพาะ BaseWebExtensionCollection ของรายการ WebExtensionReference

ดูเพิ่มเติม

 ภาษาไทย