Web-Extension コレクション クラス

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 概要

クラス/メソッド説明
BaseWebExtensionCollection4つの 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項目)

参照

 日本語