object=null 和 object.Dispose()有什么区别,它们释放了内存了吗??
object=null 和 object.Dispose()有什么区别?
以下是System.Web.UI.Control.Dispose()的代码
public virtual void Dispose() {
IContainer local0;
EventHandler local1;
local0 = null;
if (this._site != null) {
local0 = (IContainer) this._site.GetService(typeof(IContainer));
if (local0 != null) {
local0.Remove(this);
local1 = this.Events.get_Item(Control.EventDisposed) as EventHandler;
if (local1 != null)
local1.Invoke(this, EventArgs.Empty);
}
}
}
没有完全看懂,大概是将自己置为null,还有自己的事件置为null,是吗?
这样做和直接将对象置为null有什么区别??
这样做能直接释放内存吗,还是和Java一样只是标记为没用的单元,等待GC处理呢??