加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

.net – 循环和垃圾收集

发布时间:2020-12-17 00:03:48 所属栏目:大数据 来源:网络整理
导读:我正在开发一个Web应用程序,我遇到了以下情况. Dim a as ObjectDim i as Integer = 0Try For i=1 to 5 a = new Object() 'Do stuff ' a = Nothing NextCatchFinally a = NothingEnd Try 我是否需要在循环中执行a = Nothing或将垃圾收集器清理干净? 在.NET中
我正在开发一个Web应用程序,我遇到了以下情况.
Dim a as Object
Dim i as Integer = 0

Try

    For i=1 to 5

        a = new Object()

        'Do stuff '

        a = Nothing

    Next

Catch

Finally

   a = Nothing

End Try

我是否需要在循环中执行a = Nothing或将垃圾收集器清理干净?

在.NET中,通常不需要设置变量reference = Nothing(C#中为null).垃圾收集器最终会清理干净.当引用超出范围时(或者当你的方法退出时或者当这个类的对象被完成时),它将被销毁.请注意,这并不意味着对象被销毁,只是对它的引用.该对象仍将被收集器非确定性地销毁.

但是,设置你的引用= Nothing将提示.NET该对象可能是垃圾,并且不一定会伤害任何东西 – 除了代码混乱.如果你要将它保留在那里,我建议将它从Try块中删除;它已经在Finally块中,因此将始终被调用. (除了某些灾难性的异常;但在这些情况下,它也不会在Try块中被调用!)

最后,我必须承认我同意格雷格:没有这个,你的代码会更清晰.使用引用完成运行时的提示很好,但肯定不是关键.老实说,如果我在代码审查中看到这一点,我可能会让开发人员重写它:

Dim a as Object
Dim i as Integer = 0

For i=1 to 5
    a = new Object()
    'Do stuff
Next

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读