C#对象销毁

对象销毁的标准语法

Framework在销毁对象的逻辑方面遵循一套规则,这些规则并不限用于.NET Framework或C#语言;这些规则的目的是定义一套便于使用的协议。这些协议如下:

  • 一旦销毁,对象不可恢复。对象不能被再次激活,调用对象的方法或者属性抛出ObjectDisposedException异常
  • 重复地调用对象的Disposal方法会导致错误
  • 如果一个可销毁对象x 包含或包装或处理另外一个可销毁对象y,那么x的Dispose方法自动调用y的Dispose方法,除非另有指令(不销毁y)

Close和Stop

有一些类型除了Dispose方法之外,还定义了Close方法。Framework对于Close方法并没有保持完全一致性,但在几乎所有情况下,它可以:

  • 要么在功能上与Dispose一致
  • 或只是Dispose的一部分功能

对于后者一个典型的例子就是IDbConnecton类型,一个Closed的连接可以再次被打开;而一个Disposed的连接对象则不能。
另外一个例子就是Windows程序使用ShowDialog的激活某个窗口对象;Close方法隐藏该窗口;而Dispose释放窗口所使用的资源。

有一些类定义Stop方法(比如Timer或HttpListener)。与Dipose方法一样,Stop方法可能会释放非托管资源;但是与Dispose方法不同的是,它允许重新启动。.

何时销毁对象</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ynchyong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值