抄了这几年代码,话说学而不思则罔,死而不学则殆。
最近在看别人代码,发现有这么一段//清理对象。
name = nullname 这个对象在执行到最后的时候给赋值null了。
我记得如果说
string name = "名字";
这样其实是初始了两个变量吧,一个是name,一个是存放"名字"的地方。
那这样写 name=null,如果说是释放了,岂不是就释放了一个地方么?
还有这样写name=null 会提高系统效率么?在Csharp中。在C++中必须要释放吧?
还请大侠来指点指点。谢谢! :)CsharpGC垃圾回收
最近在看别人代码,发现有这么一段//清理对象。
name = nullname 这个对象在执行到最后的时候给赋值null了。
我记得如果说
string name = "名字";
这样其实是初始了两个变量吧,一个是name,一个是存放"名字"的地方。
那这样写 name=null,如果说是释放了,岂不是就释放了一个地方么?
还有这样写name=null 会提高系统效率么?在Csharp中。在C++中必须要释放吧?
还请大侠来指点指点。谢谢! :)CsharpGC垃圾回收
解决方案 »
- 问一个不同版本IE参数问题
- 今天用WebBrowser开发采集功能遇到一个好奇怪的问题
- 关于字符串编码
- .net中使用无刷新的分页插件Pagination的问题
- dataGrid中怎么访问其中的一项
- 刚接触asp.net,问一下代码的执行顺序。
- 怎么解决IE显示图片缩小失真的问题啊?(在线等待,只要解决问题,多少分都给,我有好几千啊,欢迎来取)
- 如何实现打开网页时自动下载一个应用程序,并安装
- 如何实现有消息时的声音提示功能
- SQL语句转成LINQ:select *, (case tab1 when 1 then 'y' when 2 then 'N' end ) as test
- asp.net多文件上传中 怎么从HttpFileCollection集合中分离出 具有相同key的文件
- 散分了!!在mvc的razor视图下怎么使用xml、xslt 对XML数据进行处理,散分了!!
估计人家只是代码需要暂时赋值为null 楼主你想多了。
可以放在析构函数里面
控制一旦超出局部变量的使用范围,会立即出栈被回收的
如果name是SqlConnection或者Win32中的非托管资源,直接name=null,不但不能提高效率,反而可能会导致内存泄漏。
必须Dispose等方式显示释放,垃圾回收器无法回收它们的。