如果我有

Dim myRect As Rectangle = New Rectangle(0,0,100,100)

是吗 必要的 要不就 美好的 以后这样做:

myRect = Nothing

还是不是必需的?谢谢你。

如果 有必要,还有其他情况不是我的变量吗?

有帮助吗?

解决方案

通常, 乔尔说, ,这是不必要的。

但是,在您的具体示例中,实际上是 无意义. Rectangle 是一个 值类型, ,因此将其设置为 Nothing 不是 甚至 影响对象的参考计数;它正在分配新的 价值 (默认值 RectanglemyRect 多变的。这类似于拥有 Integer 可变并将其设置为 0 在方法的末尾。什么都没买。


我应该指出,索赔“将任何变量设置为 Nothing 或者 null 在c#中]永远不要完成任何事情“*是一个神话。 场地 在课堂上,您最好 null 如果不再需要引用的对象,但是您仍然对类实例本身有所参考。

作为一个简单的例子,假设您有一些包装的容器类 T[] 数组,您给这个容器一个 Empty 方法。将容器的内部数组设置为 null 在此方法中,将导致对数组对象的零引用,将其限定为垃圾收集。 (然后,当外部代码下一步尝试添加一个时,您将创建一个新数组 T 到集合。)如果您没有将字段设置为null Empty, ,然后仍然会引用数组(即字段),因此,这将是您真正不需要的少量内存。

就像我说的那样,这是一个简单的例子。老实说,很少需要考虑这样的场景。我只是以为我会提到它,这样您就不会得到错误的印象 场地Nothing 从字面上看,从来没有完成任何事情。

*我实际上并不是在这里引用任何特定的人;这只是我听说过的过度概括。

其他提示

不要做。这在VB6天内很重要,但是对于.NET来说,(尽管不太可能)实际上将垃圾收集器丢弃并产生其他意外的副作用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top