C# var关键字解决了内存泄漏吗?

C# var关键字解决了内存泄漏吗?,c#,wpf,silverlight,memory-leaks,var,C#,Wpf,Silverlight,Memory Leaks,Var,我知道什么是var(匿名)关键字,以及如何使用以及我们主要在哪个地方使用这个关键字(LINQ-否则我们不知道函数的确切返回值,我们可以在那个地方使用var关键字) 我知道这两行之间没有区别,我怀疑var关键字是否解决了内存泄漏问题 例如: C#: 首先,var不是匿名关键字。您的代码中没有显示任何匿名信息。第二,如果您“知道这两行之间没有区别”,为什么您会怀疑这会改变内存泄漏?不,没有。不,首先这里可能没有“内存泄漏” 检查窗口是否实现了IDisposable。如果是,并且如果窗口的使用仅限于本

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

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

例如:

C#:


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

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


在上面的例子中,
var
纯粹是为了方便起见,以避免我需要在一行上三次键入“window”。

var
关键字可以用于匿名类型,也可以用于类型推断(编译器可以推断变量的类型)。这两行编译为完全相同的IL代码:

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

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

这些代码行之间没有区别。它们编译成相同的东西。“var”对内存消耗没有影响-它只是类型名称的一个快捷方式。关于
var
的使用,本网站有很多问题。请先做一些研究。如果两行代码之间没有区别,那么如何解决“内存泄漏问题”(您在问题的任何一点上都没有描述这个问题)?你的问题太不清楚,无法以目前的形式回答。
using(var window=new Window()) {
    // NOT SHOWN: configure it, display it (modally), read the final values, etc
}
Window window=new Window();
var window=new Window();