Dot-Net
明確的控制並不能消除它們——風險是什麼?
關於 .NET 組件容器中的Clear () 項目不處置它們(通過呼叫 Dispose( true )的事實有多個執行緒(a、b、c等)。
大多數情況下,恕我直言,應用程序中不再使用已清除的組件,因此需要在從父容器中清除它們後顯式地處理它。
集合的
Clear方法有一個 bool 參數可能是一個好主意,dispose當它在 true 時也會在集合元素從列表中刪除之前處理集合元素?
要求這樣的修改是沒有意義的,Windows Forms 團隊早就解散了。它處於維護模式,僅考慮安全問題和作業系統不兼容問題。
否則,創建自己的方法來執行此操作非常簡單:
public static class ExtensionMethods { public static void Clear(this Control.ControlCollection controls, bool dispose) { for (int ix = controls.Count - 1; ix >= 0; --ix) { if (dispose) controls[ix].Dispose(); else controls.RemoveAt(ix); } } }現在你可以寫:
panel1.Controls.Clear(true);