关于C#中的graphics变量的dispose问题

graphics变量在C#中似乎有的要dispose有的却不用.这是怎么个情况呀?好像是在发生Paint事件时由PaintEventArgs.e中的e.Graphics传... graphics变量在C#中似乎有的要dispose 有的却不用.这是怎么个情况呀?好像是在发生Paint事件时 由PaintEventArgs.e中的e.Graphics传递的不需要自己动手动dispose
而在非Paint事件中 通过CreateGraphics()创建的则需要自己动手dispose 是这样吗?这是为什么呀?
展开
 我来答
忆梦潇湘
2011-07-28 · TA获得超过584个赞
知道小有建树答主
回答量:391
采纳率:0%
帮助的人:318万
展开全部
CreateGraphics()是你创建的一个新的graphics对象,这个对象用完之后自然要dispose释放掉。
而 e.Graphics 是来自控件 Paint 事件的参数,这个 Graphics 不是用户创建的,是控件内部用于绘制界面的画布,当然不能随便 Dispose 啦。注意这是传递来的参数,并不由事件的注册者创建,Dispose是要控件自己完成的。
yblybl6_
2011-07-29
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
同意一楼,
“其一:通过e.Graphics建立的对象是在某对象中建立的画图,在此对象中已有该对象的释放内存的指令;
其二:CreateGraphics只是建立一个Graphics对象,这二者的意义是不同的。”
e.Graphics 只是被封装了,你看不到底层的代码,我觉的这就是好多人希望微软的原因之一,C++
就不会有这种情况;还有.net框架集是侧重于开发效率的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友712a5b4
2011-07-26 · TA获得超过335个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:112万
展开全部
如果你说的存在的话,愿因有二
其一:通过e.Graphics建立的对象是在某对象中建立的画图,在此对象中已有该对象的释放内存的指令;
其二:CreateGraphics只是建立一个Graphics对象,这二者的意义是不同的。
追问
猜的吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式