新しいコントロールを作成するたびに、Visual Studio は次のフィールドを追加します
private System.ComponentModel.IContainer components = null;
しかし、それを使用することはありません。何のために?
新しいコントロールを作成するたびに、Visual Studio は次のフィールドを追加します
private System.ComponentModel.IContainer components = null;
しかし、それを使用することはありません。何のために?
ユーザー コントロールは、単に独自の「コントロール」を作成するためのものです。そのコントロールが他の子コントロールで構成されている場合、それらのコントロールは、コントロールが破棄されるときに破棄する必要があります (使い捨てオブジェクトなどの一般的な礼儀)。
この点で、ユーザー コントロールは親コントロールです。したがって、デフォルトでは、クラスはこれらの子コントロールのコンテナーを作成します。デザイナーでユーザー コントロールを "デザイン" し、コントロールをツールボックスからデザイン サーフェイスにドラッグ アンド ドロップできます。これにより、components
フィールドが認識され、それらの子コントロールがコレクションに確実に追加されます。
コントロールのコンテナがあります
コンテナーを使用すると、コンポーネントがその依存関係を見つけたり、その有効期間を管理したりする必要がなくなります。
コンテナーを使用すると、コンポーネントに影響を与えることなく、実装された依存関係を交換できます。
コンテナーは、依存関係をモックできるようにすることで、テスト容易性を促進します。
コンテナーを使用すると、新しいコンポーネントをシステムに簡単に追加できるため、保守性が向上します。