Các lớp bộ sưu tập Web-Extension

Các lớp bộ sưu tập Web-Extension

Các lớp bộ sưu tập Web-Extension

Hướng dẫn này cho thấy cách bốn lớp bộ sưu tập tiện ích mở rộng web trong Aspose.Words FOSS cho .NET — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, và WebExtensionReferenceCollection — chia sẻ một hợp đồng bộ sưu tập duy nhất thông qua lớp trừu tượng BaseWebExtensionCollection lớp cơ sở. Để hiểu các khung nhiệm vụ, ràng buộc và thuộc tính tiện ích mở rộng web thực sự đại diện cho gì, xem phần Web Extensions hướng dẫn; trang này chỉ đề cập đến API chứa chung mà chúng đều chia sẻ.


BaseWebExtensionCollection: Một hợp đồng, bốn bộ sưu tập

BaseWebExtensionCollection là lớp cơ sở cho TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection, và WebExtensionReferenceCollection. Nó thực thi IEnumerable<T> và định nghĩa mọi thành viên mà bốn bộ sưu tập cụ thể này công khai — không có lớp con nào trong bốn lớp này khai báo thêm phương thức hoặc thuộc tính riêng ngoài những gì lớp cơ sở cung cấp.


Thêm, Xóa và Đếm các mục

Add(item) thêm mục được chỉ định vào bộ sưu tập. Clear() xóa tất cả các phần tử. Remove(index) xóa mục tại chỉ số được chỉ định — nó nhận một index vị trí, không phải tham chiếu tới mục, vì vậy việc xóa một mục cụ thể đồng nghĩa với việc phải tìm chỉ số của nó trước. Count báo cáo số lượng phần tử hiện có trong bộ sưu tập.


Liệt kê một bộ sưu tập

GetEnumerator() trả về một enumerator có thể duyệt qua collection, vì vậy bất kỳ collection nào được tạo ra từ BaseWebExtensionCollection đều hỗ trợ vòng lặp foreach trên các mục của nó mà không cần mã lặp đặc thù cho kiểu.


Mẹo và Thực hành Tốt nhất

  • Vì cả bốn collection đều chia sẻ cùng một hợp đồng cơ bản, mã được viết dựa trên các thành viên Add, Clear, Remove, Count và GetEnumerator của BaseWebExtensionCollection hoạt động một cách đồng nhất trên TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection và WebExtensionReferenceCollection.
  • Remove(index) nhận một chỉ số vị trí — nếu bạn chỉ có chính mục đó, hãy duyệt collection để tìm chỉ số của nó trước, hoặc theo dõi chỉ số khi chèn.
  • Đọc Count trước khi lặp, hoặc foreach trực tiếp trên collection bằng GetEnumerator() thay vì tự chỉ mục, vì hợp đồng cơ bản không cung cấp getter vị trí.
  • Gọi Clear() khi bạn cần đặt lại một collection thay vì gọi Remove liên tục trong vòng lặp.

Các vấn đề thường gặp

Vấn đềNguyên nhânSửa
Remove không chấp nhận mục đóRemove(index) trên các collection được suy ra từ BaseWebExtensionCollection nhận một chỉ mục vị trí, không phải tham chiếuĐầu tiên hãy tìm chỉ số của mục (ví dụ trong quá trình liệt kê), sau đó gọi Remove(index)
Việc duyệt một trong bốn collection cảm thấy bị trùng lặp giữa các kiểuMỗi collection là một kiểu cụ thể riêng biệt, nhưng chúng đều chia sẻ các thành viên của BaseWebExtensionCollectionViết một lần logic duyệt chung hoặc tiện ích dựa trên các thành viên Add, Clear, Remove, Count và GetEnumerator chung cho cả bốn
Không chắc kiểu collection cụ thể nào mà đoạn mã cầnBốn bộ sưu tập được tiết lộ từ các thuộc tính khác nhau trên WebExtension và DocumentKiểm tra Web Extensions hướng dẫn về thuộc tính nào trả về loại bộ sưu tập nào

FAQ

Tại sao bốn bộ sưu tập phần mở rộng web lại hoạt động theo cùng một cách?

Tất cả chúng đều kế thừa từ cùng một lớp cơ sở trừu tượng, BaseWebExtensionCollection, lớp này định nghĩa Add, Clear, Remove, Count và GetEnumerator — không có lớp con nào trong bốn lớp này thêm thành viên riêng của chúng.

Làm thế nào để tôi loại bỏ một mục cụ thể khỏi một trong các bộ sưu tập này?

Gọi Remove(index) với chỉ số vị trí của mục — xác định chỉ số bằng cách liệt kê bộ sưu tập trước nếu bạn chỉ có tham chiếu tới mục.

Tôi có thể duyệt bất kỳ bộ sưu tập nào trong bốn bộ này theo cùng một cách không?

Có — cả bốn đều triển khai IEnumerable<T> qua BaseWebExtensionCollection, vì vậy GetEnumerator() / foreach hoạt động giống hệt nhau trên tất cả chúng.

Tôi có thể tìm hiểu ở đâu về việc một mục WebExtensionBinding hoặc TaskPane thực sự đại diện cho gì?

Xem Web Extensions hướng dẫn — trang này chỉ đề cập đến hành vi chung của bộ chứa bộ sưu tập, không bao gồm các đối tượng miền mà các bộ sưu tập chứa.


API Reference Tóm tắt

Lớp/Phương thứcMô tả
BaseWebExtensionCollectionLớp cơ sở trừu tượng được chia sẻ bởi tất cả bốn loại bộ sưu tập tiện ích web
BaseWebExtensionCollection.Add(item)Thêm một mục vào bộ sưu tập
BaseWebExtensionCollection.Clear()Xóa tất cả các phần tử khỏi bộ sưu tập
BaseWebExtensionCollection.Remove(index)Xóa mục tại chỉ mục đã chỉ định
BaseWebExtensionCollection.GetEnumerator()Trả về một enumerator để lặp lại qua collection
BaseWebExtensionCollection.CountSố lượng phần tử trong collection
TaskPaneCollectionCụ thể BaseWebExtensionCollection của TaskPane mục
WebExtensionBindingCollectionCụ thể BaseWebExtensionCollection của WebExtensionBinding mục
WebExtensionPropertyCollectionCụ thể BaseWebExtensionCollection của WebExtensionProperty mục
WebExtensionReferenceCollectionCụ thể BaseWebExtensionCollection của WebExtensionReference mục

Xem thêm

 Tiếng Việt