社区
C#
帖子详情
关闭窗口后还能访问其中的变量
startexcel
2010-11-01 09:17:03
Form1 b = new Form1();
b.ShowDialog();
int c=b.Y;
这时居然还能取得到b.Y的值,为什么?是GC还没有回收吗?如果是的话那这样写不是很不保险,有可能会取不到值?
...全文
120
7
打赏
收藏
关闭窗口后还能访问其中的变量
Form1 b = new Form1(); b.ShowDialog(); int c=b.Y; 这时居然还能取得到b.Y的值,为什么?是GC还没有回收吗?如果是的话那这样写不是很不保险,有可能会取不到值?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
startexcel
2010-11-15
打赏
举报
回复
还有更好的答案吗?
jointan
2010-11-01
打赏
举报
回复
Close和Dispose只是释放资源,如果对象的类实现组件模型,就是依次释放各级资源.不牵涉释放资源的东西,只要引用还存在,那就还可以访问.比如b.Y只是一个Int,还可以访问,但b中如果有一个以组件模型的方式嵌入的一个Image,那肯定就不能访问了.
phil999
2010-11-01
打赏
举报
回复
如果调用的是 Form.Close,那么 dispose 被调用,资源被释放,但是变量引用的对象还是在的,只不过状态不对了
ShowDialog 的行为又有不同,它返回后,窗体只是隐藏,没有销毁,当然可以访问。这也意味着,如果用的是局部变量,你应当显式销毁它。
Form1 b = new Form1();
b.ShowDialog();
int c=b.Y;
b.Dispose();
dobdream
2010-11-01
打赏
举报
回复
这样写是可以取到b.Y的值的,因为对象还存在。
对象就连Dispose方法都没有执行,怎么会回收呢
skyering
2010-11-01
打赏
举报
回复
b的实例仍然存在。
dapenge
2010-11-01
打赏
举报
回复
取到了 所以取得到
ZengHD
2010-11-01
打赏
举报
回复
为什么取不到?b又不为空,这个和GC没有关系吧
关闭
javascript有什么影响,javascript
关闭
窗口
代码
本文讲解了如何使用JavaScript
关闭
当前
窗口
,以及闭包的概念,强调其功能在于
访问
函数内部
变量
并保持其值在内存中。引用阮一峰的观点,闭包是连接内外函数的桥梁。,
窗口
CAPTION与任务栏中显示不同的解决方法
在开发中遇到程序
窗口
与任务栏显示不同CAPTION的挑战,尝试通过设置
窗口
文本并重画未成功。最终采用创建隐藏
窗口
在任务栏显示统一CAPTION,隐藏实际
窗口
的方法解决。在实现过程中,遇到最小化时
关闭
程序的需求,通过反射技术
访问
并修改其他程序实例的公共
变量
。代码中展示了在
窗口
最小化时如何触发
关闭
程序的逻辑。
作为window对象属性的元素 多
窗口
和窗体
本文探讨了HTML文档元素与
窗口
对象的交互方式,包括ID属性如何成为全局
变量
供脚本
访问
,以及
窗口
对象如何通过ID引用这些元素。还讨论了如何使用window对象打开和
关闭
窗口
,以及不同
窗口
间的相互作用。
MVVM中View与ViewModel之间的交互
本文介绍了MVVM中View与ViewModel的交互方法。View可通过DataContext
访问
ViewModel,在Event触发时可在behind code里直接
访问
。ViewModel
访问
View可设View接口成员
变量
,但此方式不佳。还介绍了WPF附加行为实现从ViewModel
关闭
View,通过依赖属性和解耦操作实现
窗口
关闭
。
Oracle中OEM的启动与
关闭
本文详细介绍了如何在Oracle环境中启动和使用OEM工具,包括通过查看portlist.ini确定端口、启动与
关闭
dbconsole服务的方法,以及如何在浏览器中
访问
OEM控制台。此外,还提供了解决在命令行
窗口
中遇到的环境
变量
未定义问题的步骤。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章