-7

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

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

例如 :

C# :

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

2 回答 2

4

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

检查是否Window执行IDisposable。如果是这样,并且如果您的使用window仅限于本地范围,则使用using(这将有助于确保及时释放任何资源,而不是等待垃圾收集器):

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

在上面,纯粹var是为了避免我需要在一行中键入三次“window”。

于 2013-10-28T10:41:44.877 回答
1

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

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

我不清楚您指的是什么内存泄漏问题,但是如果没有另一个也这样做,一个就不会导致内存泄漏。

于 2013-10-28T10:42:11.153 回答