var关键字是否解决了内存泄漏问题?

时间:2013-10-28 10:39:00

标签: c# wpf silverlight memory-leaks var

我知道什么是var(匿名)关键字,以及如何使用以及我们主要使用哪个地方关键字(LINQ - 否则我们不知道函数的确切返回值,我们可以使用var关键字)。 / p>

我知道这两行之间没有区别,我怀疑var关键字是否解决了内存泄漏问题?

例如:

C#:

Window window=new Window();
var window=new Window();

2 个答案:

答案 0 :(得分:4)

首先,var 匿名关键字。您的代码中没有显示任何匿名信息。其次,如果你“知道这两行之间没有区别”,为什么你会怀疑它会改变任何内存泄漏?不,它没有。不,这里可能没有“内存泄漏”。

检查Window是否实施IDisposable。如果是,并且 如果 您对window的使用仅限于本地范围,请使用using(这将有助于确保所有资源都是及时解除分配,而不是等待垃圾收集器):

using(var window=new Window()) {
    // NOT SHOWN: configure it, display it (modally), read the final values, etc
}

在上面,var 纯粹是一种方便,可以避免我需要在一行上输入“窗口”三次。

答案 1 :(得分:1)

var关键字可以与匿名类型一起使用,并且可以用于类型推断(变量的类型可以由编译器推断)。这两行编译成完全相同的IL代码:

Window window=new Window();
var window=new Window();

我不清楚你提到的内存泄漏问题,但是如果没有其他人这样做,就不会导致内存泄漏。

相关问题