.net 当一个类有多个成员时如何实现Dispose
如何实现dispose类,该类将对象作为成员,但不实现IDisposable 请参考下面的示例了解我的意思:.net 当一个类有多个成员时如何实现Dispose,.net,vb.net,idisposable,.net,Vb.net,Idisposable,如何实现dispose类,该类将对象作为成员,但不实现IDisposable 请参考下面的示例了解我的意思: Public Class MyClass Implements IDisposable private emp as EmpClass private dept as DeptClass ' EmpClass and DeptClass doesn't implemented IDisposable interface. ' IDispos
Public Class MyClass
Implements IDisposable
private emp as EmpClass
private dept as DeptClass
' EmpClass and DeptClass doesn't implemented IDisposable interface.
' IDisposable
Protected Overridable Sub Dispose(disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
emp = Nothing ' --> Can't call Dispose method so I set to null
dept = Nothing ' --> Can't call Dispose method so I set to null
End If
End If
Me.disposedValue = True
End Sub
End Class
从上面看,所有都是托管对象,我可以进行必要的更新。所以请建议代码是否正确
已编辑
当我试图创建MyClass的实例时,编译器给了我一个必须实现IDisposable的错误。下面是我的电话号码
Using ctx = MyFactory.CreateMyClass()
'DO Something
End Using
发件人:
此接口的主要用途是释放非托管资源。
垃圾回收器会自动释放分配给
当不再使用托管对象时。然而,事实并非如此
可以预测垃圾回收何时发生。此外,,
垃圾收集器不知道非托管资源,例如
窗口句柄,或打开文件和流
因此,如果您的类不使用流、文件或非托管对象,则无需调用Dispose或实现IDisposable。
dispose中的另一项功能是从以下位置删除不再需要的侦听器:
此接口的主要用途是释放非托管资源。
垃圾回收器会自动释放分配给
当不再使用托管对象时。然而,事实并非如此
可以预测垃圾回收何时发生。此外,,
垃圾收集器不知道非托管资源,例如
窗口句柄,或打开文件和流
因此,如果您的类不使用流、文件或非托管对象,则无需调用Dispose或实现IDisposable。
dispose中的另一件事是删除不再需要的侦听器问题是:为什么要实现
IDisposable
?好问题,我在上面附加了我的实际问题来回答您的问题。后续问题:为什么要将类与Using
语句一起使用?首先,我曾想限制这个使用语句编写的实例的范围,然后开始编写代码来解决问题(比如IDisposable)。但看起来我不需要在这里使用语句,现在所有问题都解决了。然而,我脑子里有一个任务悬而未决,为什么我不能使用Using..也许你认为我想使用Using
语句,所以我实现IDisposable
而不是实现IDisposable
,所以我应该使用Using
语句。或者,类的使用有一个有限的、特定的范围,您希望在这个范围的末尾发生一些事情?我经常看到的一个常见用例是,一个类在其构造函数中将游标更改为WaitCursor,然后在Dispose
方法中将其更改回上一个游标。这允许使用新的WaitCursor()进行操作。。。等待光标显示时发生的事情…
。问题是:为什么要实现IDisposable
?好问题,我在上面附加了我的实际问题来回答您的问题。后续问题:为什么要将类与Using
语句一起使用?好的,首先,我曾想限制这个使用语句编写的实例的范围,然后开始编写代码来解决问题(比如IDisposable)。但看起来我不需要在这里使用语句,现在所有问题都解决了。然而,我脑子里有一个任务悬而未决,为什么我不能使用Using..也许你认为我想使用Using
语句,所以我实现IDisposable
而不是实现IDisposable
,所以我应该使用Using
语句。或者,类的使用有一个有限的、特定的范围,您希望在这个范围的末尾发生一些事情?我经常看到的一个常见用例是,一个类在其构造函数中将游标更改为WaitCursor,然后在Dispose
方法中将其更改回上一个游标。这允许使用新的WaitCursor()进行操作。。。等待光标显示时发生的内容…
。