可能重複:
When and why should I implement IComponent, IContainer, and ISite?爲什麼在用戶控件中有`components`字段?
我每次創建新的控件時,Visual Studio將在下一場
private System.ComponentModel.IContainer components = null;
但從來沒有使用它。做什麼的?
可能重複:
When and why should I implement IComponent, IContainer, and ISite?爲什麼在用戶控件中有`components`字段?
我每次創建新的控件時,Visual Studio將在下一場
private System.ComponentModel.IContainer components = null;
但從來沒有使用它。做什麼的?
用戶控件只是創建自己的「控件」的一種方法。如果該控件由其他子控件組成,那麼這些控件應該在您的控件被處置時處理掉(對於一次性對象的常見禮貌等)。
用戶控件是這方面的父控件;所以,默認情況下,類爲這些子控件創建一個容器。您可以在設計器中「設計」用戶控件,並將工具箱中的控件拖放到設計界面上,該控件瞭解components
字段並確保將這些子控件添加到集合中。
你有你的控制
的容器不再需要一個組件來定位其依賴或管理其生命週期的容器。
容器允許交換實現的依賴關係而不影響組件。
容器通過允許依賴性被嘲笑來促進可測試性。
容器通過允許將新組件輕鬆添加到系統中來提高可維護性。