读书人

小问dispose解决办法

发布时间: 2012-07-31 12:33:46 作者: rapoo

小问dispose
A指向一个可dispose的对象,B指向A。
那么A调用dispose的时候,B会受影响吗?请高人详解下~

[解决办法]
你的代码可以约等于这样。
void BBC()
{
Font font1 = new Font("Arial", 9);
this.font = font1;
font1.Dispose();
}

IDisposable只是一个接口而已,在语言层面并没有特殊的含义。
对于外界来说,调用A.AAA()方法和调用Dispose方法没有什么本质不同而已。只是人为的给Dispose方法加上了释放了非托管资源的含义,并且有着using这个特殊对待而已。
[解决办法]

探讨

那楼上的高人,能不能解释下,为什么this.font在font1调用dispose后仍然不受影响呢?

[解决办法]
探讨

其实我想问的是,我要在我的代码中有类似6楼代码这样的用法,我想问的是这样的做法对不对?就是在把local font赋值给this.font后,把local font直接dispose掉,这种做法对不对?

using (Font font = new Font("Arial", 9))
{
this.font = font;
}

[解决办法]
探讨
其实我想问的是,我要在我的代码中有类似6楼代码这样的用法,我想问的是这样的做法对不对?就是在把local font赋值给this.font后,把local font直接dispose掉,这种做法对不对?

using (Font font = new Font("Arial", 9))
{
this.font = font;
}

读书人网 >C#

热点推荐