如何彻底把控件销毁? Dispose后还能找到?
我代码通过new 生成了一个控件,ID=“_c1"
在另一个函数代码中
Control _c1 = this.FindControl("_c1" );
能找到。
后面 _c1.Dispose ();
再次执行 Control _c1 = this.FindControl("_c1" ); 发现还能找到??奇怪了,因为我想销毁他,把这个ID分给别人用。
在另一个函数代码中
Control _c1 = this.FindControl("_c1" );
能找到。
后面 _c1.Dispose ();
再次执行 Control _c1 = this.FindControl("_c1" ); 发现还能找到??奇怪了,因为我想销毁他,把这个ID分给别人用。
...全文
请发表友善的回复…
发表回复
江湖评谈 2018-05-18
- 打赏
- 举报
你这个代码 dispose 时候应该就会报错,未将对象设置引用到实例。
不知道你如何找到的
正怒月神 版主 2018-05-18
- 打赏
- 举报
你这个页面还开着,引用还保持着。
怎么想得出调用Dispose 的呢。
sp1234已经解答了。就不赘述了。建议楼主去了解一下Dispose
以专业开发人员为伍 2018-05-18
- 打赏
- 举报
另外,在 .net 框架中,所有的组件(从Component 类型继承的对象类型实例)在没有引用从而被GC 回收之前,都会自动调用 Dispose 方法,用不着你自己去调用它。这是一个 .net 基础知识。所以调用 Dispose 是浪费执行时间、让系统更慢的机械地”抖动“的做法。
用不着你写 Dispose 语句。除非你需要理解执行什么代码,比如说需要立即将逻辑数据库连接放回连接池、从而让十几个物理连接能服务于成千上万的(准)并发连接,这时候才需要尽快释放连接。那么写 Dispose() 代码的时候,我们就要问一下“到底知不知道 Dispose 方法内部机制是做了什么?",不知道的情况下就不要、不必调用 Dispose 方法。
以专业开发人员为伍 2018-05-18
- 打赏
- 举报
控件.Dispose() 方法到底是干了什么事情?没有学过深入的内容,不要滥用。你想象中的“销毁”具体是什么机制、有没有在哪一本入门数或者 asp.net 的教科书上看到说明呢?贴出来。你提出的这个问题,前提就是不成立的。
如何真正去进行编程设计,要读教科书,要靠普地去设计程序,不走大的弯路。不是靠想象去学习。
大鱼> 2018-05-18
- 打赏
- 举报
查询一个ID叫 _c1 的控件,如果找到了就把他给 _c1 这个控件变量[/quote]
那你就要好好测测,你这两个_c1会不会是同一个
以专业开发人员为伍 2018-05-17
- 打赏
- 举报
啥叫销毁?没有根据的想法。
robig 2018-05-17
- 打赏
- 举报
查询一个ID叫 _c1 的控件,如果找到了就把他给 _c1 这个控件变量
大鱼> 2018-05-17
- 打赏
- 举报
我感觉你这句话就有毛病啊,你要将哪个_c1赋给哪个_c1啊