0

可能重复:
何时以及为什么应该实现 IComponent、IContainer 和 ISite?

每次我创建新控件时,Visual Studio 都会添加下一个字段

private System.ComponentModel.IContainer components = null;

但从不使用它。做什么的?

4

2 回答 2

0

你有你的控件容器

  1. 容器消除了组件定位其依赖项或管理其生命周期的需要。

  2. 容器允许在不影响组件的情况下交换已实现的依赖项。

  3. 容器通过允许模拟依赖关系来促进可测试性。

  4. 容器通过允许将新组件轻松添加到系统中来提高可维护性。

于 2012-09-03T13:41:26.207 回答
0

用户控件只是创建您自己的“控件”的内容。如果该控件由其他子控件组成,那么当您的控件被释放时,这些控件应该被释放(Disposable 对象的常见礼貌等)。

用户控件在这方面是一个父控件;因此,默认情况下,该类为这些子控件创建一个容器。您可以在设计器中“设计”用户控件,并将工具箱中的控件拖放到设计图面上——这知道该components字段并确保将这些子控件添加到集合中。

于 2012-09-03T14:34:10.977 回答