If I got
Dim myRect As Rectangle = New Rectangle(0,0,100,100)
Is it 必要的要不就fine稍后执行此操作:
myRect = Nothing
或者说没有必要?谢谢。
IF这是必要的,还有其他情况不适合我的变量吗?
一般来说,如乔尔说,没有必要。
但在你的具体例子中,它实际上是无意义. Rectangle
is a 值类型,所以将其设置为Nothing
is not even影响对象的引用计数;它正在分配一个新的value(默认值Rectangle
)到你的myRect
多变的。这类似于有一个Integer
变量并将其设置为0
在方法的末尾。不给你买任何东西。
我应该指出,“将任何变量设置为Nothing
[or null
在 C# 中] 永远不会完成任何事情”* 是一个神话。您完全有可能有一个field在你不妨设置的课程中null
如果不再需要引用的对象,但您仍然拥有对类实例本身的引用。
作为一个简单的例子,假设你有一些容器类,它包装了一个T[]
数组,然后你给这个容器一个Empty
方法。将容器的内部数组设置为可能有意义null
在此方法中,这将导致对数组对象的引用为零,使其有资格进行垃圾回收。 (当外部代码下次尝试添加一个新数组时,您将创建一个新数组T
到集合。)如果您没有将字段设置为空Empty
,那么仍然会有对数组(即字段)的引用,因此会使用少量您实际上不需要的内存。
就像我说的,这是一个简单的例子。老实说,您很少需要考虑这样的场景。我只是想我会提到它,这样你就不会产生设置一个错误的印象field to Nothing
从字面上看,永远不会完成任何事情。
*I'm not actually quoting anyone specific here; this is just an over-generalization I've heard stated more than once.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)