我知道什么是var(匿名)关键字,以及如何使用以及我们主要使用哪个地方关键字(LINQ - 否则我们不知道函数的确切返回值,我们可以使用var关键字)。 / p>
我知道这两行之间没有区别,我怀疑var关键字是否解决了内存泄漏问题?
例如:
C#:
Window window=new Window();
var window=new Window();
答案 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();
我不清楚你提到的内存泄漏问题,但是如果没有其他人这样做,就不会导致内存泄漏。