Web-Extension コレクション クラス
Web拡張コレクション クラス
このガイドでは、Aspose.Words FOSS for .NET の4つのWeb拡張コレクションクラスがどのように — TaskPaneCollection, WebExtensionBindingCollection, WebExtensionPropertyCollection、および WebExtensionReferenceCollection — 抽象基底クラスを介して単一のコレクション契約を共有します BaseWebExtensionCollection 基底クラスです。タスクペイン、バインディング、Web拡張プロパティが実際に何を表すかについては、 Web拡張 ガイド; このページでは、彼らが共有するコンテナ API のみを取り上げます。
BaseWebExtensionCollection: 1つの契約、4つのコレクション
BaseWebExtensionCollection は TaskPaneCollection、WebExtensionBindingCollection、WebExtensionPropertyCollection、および WebExtensionReferenceCollection の基底クラスです。IEnumerable<T> を実装し、これら4つの具体的なコレクションが公開するすべてのメンバーを定義します — 4つのサブクラスのいずれも、基底クラスが提供するもの以外に独自のメソッドやプロパティを宣言していません。
アイテムの追加、削除、カウント
Add(item) は指定されたアイテムをコレクションに追加します。Clear() はすべての要素を削除します。Remove(index) は指定されたインデックスにあるアイテムを削除します — これはアイテム参照ではなく位置的な index を受け取るため、特定のアイテムを削除するにはまずそのインデックスを特定する必要があります。Count は現在コレクションに含まれる要素数を返します。
コレクションの列挙
GetEnumerator() はコレクションを反復できる列挙子を返すため、BaseWebExtensionCollection から派生したコレクションは、型固有の反復コードなしでその項目に対して foreach ループをサポートします。
ヒントとベストプラクティス
- 4つのコレクションはすべて同じ基本契約を共有しているため、
BaseWebExtensionCollectionのAdd、Clear、Remove、Count、およびGetEnumeratorメンバーに対して記述されたコードは、TaskPaneCollection、WebExtensionBindingCollection、WebExtensionPropertyCollection、WebExtensionReferenceCollection全体で一様に機能します。 Remove(index)は位置インデックスを受け取ります — アイテム自体しか持っていない場合は、まずコレクションを列挙してインデックスを見つけるか、挿入時にインデックスを追跡してください。- 反復する前に
Countを読み取り、または手動でインデックス指定する代わりにGetEnumerator()を使ってコレクションを直接foreachしてください。基本契約は位置取得子を公開していないためです。 - コレクションをリセットする必要があるときは、ループ内で
Removeを繰り返し呼び出すのではなく、Clear()を呼び出してください。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
Remove は項目自体を受け付けません | Remove(index) は BaseWebExtensionCollection 派生コレクションで位置インデックスを受け取り、参照は受け取りません | まず項目のインデックスを取得します(例: 列挙しながら)。その後で Remove(index) を呼び出します |
| 4つのコレクションのいずれかを反復処理することは、型ごとに重複しているように感じられます | 各コレクションは個別の具体型ですが、すべて BaseWebExtensionCollection のメンバーを共有しています | 4つすべてに共通するメンバー Add、Clear、Remove、Count、GetEnumerator に対して、共有のイテレーションまたはユーティリティロジックを一度だけ記述します |
| コードのどの具体的なコレクション型が必要か不明です | 4つのコレクションは、WebExtension と Document の異なるプロパティから公開されています。 | 以下を確認してください Web 拡張機能 どのプロパティがどのコレクションタイプを返すかのガイド |
FAQ
なぜ4つの web-extension コレクションは同じように動作するのでしょうか?
それらはすべて同じ抽象基底クラス BaseWebExtensionCollection から派生しており、Add、Clear、Remove、Count、GetEnumerator を定義しています——4つのサブクラスのいずれも独自のメンバーを追加していません。
これらのコレクションのうちの一つから特定のアイテムを削除するにはどうすればよいですか?
アイテムの位置インデックスを指定して Remove(index) を呼び出します——アイテム参照しかない場合は、まずコレクションを列挙してインデックスを特定してください。
これら4つのコレクションのいずれでも同じ方法で反復処理できますか?
はい——すべてのコレクションは IEnumerable<T> から BaseWebExtensionCollection を実装しているので、GetEnumerator() / foreach はそれら全体で同一に機能します。
WebExtensionBinding または TaskPane アイテムが実際に何を表すかはどこで学べますか?
参照してください Web 拡張機能 ガイド — このページは共有コレクションコンテナの動作のみを扱っており、コレクションが保持するドメインオブジェクトは対象外です。
API Reference 概要
| クラス/メソッド | 説明 |
|---|---|
BaseWebExtensionCollection | 4つの Web 拡張コレクションタイプすべてが共有する抽象基底クラス |
BaseWebExtensionCollection.Add(item) | コレクションに項目を追加します |
BaseWebExtensionCollection.Clear() | コレクションからすべての要素を削除します |
BaseWebExtensionCollection.Remove(index) | 指定されたインデックスの項目を削除します |
BaseWebExtensionCollection.GetEnumerator() | コレクションを反復処理するための列挙子を返します |
BaseWebExtensionCollection.Count | コレクション内の要素数 |
TaskPaneCollection | 具体的な BaseWebExtensionCollection(TaskPane アイテム) |
WebExtensionBindingCollection | 具体的な BaseWebExtensionCollection(WebExtensionBinding アイテム) |
WebExtensionPropertyCollection | 具体的な BaseWebExtensionCollection(WebExtensionProperty項目) |
WebExtensionReferenceCollection | 具体的な BaseWebExtensionCollection(WebExtensionReference項目) |