c#中 用 new 分配内存后,怎么把他释放掉?求解答

 我来答
力玲珑0g4
2013-10-25 · TA获得超过593个赞
知道答主
回答量:115
采纳率:90%
帮助的人:62.6万
展开全部
托管堆的内存由GC自动回收,在编写代码的时候也无需显式调用GC。非托管资源的内存释放可以声明一个析构器。
using System;
public sealed class OSHandle{
// 保存一个非托管资源的win32句柄
private IntPtr handle;
// 构造器初始化句柄
public OSHandle(IntPtr handle){this.handle = handle;}
//当垃圾收集执行的时候,下面的析构器(Finalize)方法
//将被调用,它将关闭非托管资源句柄。
~OSHandle(){CloseHandle(handle);}
// 返回所有封装的handle句柄
public IntPtr ToHandle(){return handle;}
// 隐式转换操作符也用于返回所封装的Handle句柄
public static implicit operator IntPtr(OSHandle osHandle){return osHandle.ToHandle();}// 释放非托管资源
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式