C#处置控制权

C#处置控制权,c#,controls,dispose,C#,Controls,Dispose,试图在运行时摆脱控件。我检查它是否存在 if(Controls.Contains(myControl)) 它返回true,因为其中的行已运行 控件。删除(myControl) 但出于某种原因,它返回了这个: System.NullReferenceException:对象引用未设置为对象的实例 如果控件包含该控件,它怎么可能是空引用?我猜控件是变为空的变量,因为controls.Remove没有声明它将抛出null 看 控件实际上是属性获取程序吗?返回的值取决于页面生命周期状态还是会话状态?发布

试图在运行时摆脱控件。我检查它是否存在

if(Controls.Contains(myControl))

它返回true,因为其中的行已运行

控件。删除(myControl)

但出于某种原因,它返回了这个:

System.NullReferenceException:对象引用未设置为对象的实例


如果控件包含该控件,它怎么可能是空引用?

我猜
控件
是变为
的变量,因为controls.Remove没有声明它将抛出null


控件
实际上是属性获取程序吗?返回的值取决于页面生命周期状态还是会话状态?

发布的代码不足以显示问题。什么是myControl?您如何使用它?顺便说一句,移除它不会处理控件。为此,请调用控件的Dispose方法,该方法也将从集合中删除它。Dispose抛出相同的NullReferenceException。这可能是一个多线程问题,即另一个线程做了一些事情,使您正在谈论的线程出现错误行为?请发布更多代码,这还不足以确定问题所在。