0

重複の可能性:
IComponent、IContainer、および ISite をいつ、なぜ実装する必要がありますか?

新しいコントロールを作成するたびに、Visual Studio は次のフィールドを追加します

private System.ComponentModel.IContainer components = null;

しかし、それを使用することはありません。何のために?

4

2 に答える 2

0

ユーザー コントロールは、単に独自の「コントロール」を作成するためのものです。そのコントロールが他の子コントロールで構成されている場合、それらのコントロールは、コントロールが破棄されるときに破棄する必要があります (使い捨てオブジェクトなどの一般的な礼儀)。

この点で、ユーザー コントロールは親コントロールです。したがって、デフォルトでは、クラスはこれらの子コントロールのコンテナーを作成します。デザイナーでユーザー コントロールを "デザイン" し、コントロールをツールボックスからデザイン サーフェイスにドラッグ アンド ドロップできます。これにより、componentsフィールドが認識され、それらの子コントロールがコレクションに確実に追加されます。

于 2012-09-03T14:34:10.977 に答える
0

コントロールのコンテナがあります

  1. コンテナーを使用すると、コンポーネントがその依存関係を見つけたり、その有効期間を管理したりする必要がなくなります。

  2. コンテナーを使用すると、コンポーネントに影響を与えることなく、実装された依存関係を交換できます。

  3. コンテナーは、依存関係をモックできるようにすることで、テスト容易性を促進します。

  4. コンテナーを使用すると、新しいコンポーネントをシステムに簡単に追加できるため、保守性が向上します。

于 2012-09-03T13:41:26.207 に答える