using语句中未使用的局部变量

时间:2015-02-27 09:45:09

标签: c#

为了dispose的利益实现使用块,例如

using (var window = new DialogWindow(Dialogs.MyDialogType))
{
    //Some action here
}

我得到一个明显的resharper / visual studio警告,从不使用局部变量窗口,因为在使用体中没有提到它。

这在技术上是正确的,有没有办法声明这样的变量,这些变量在使用体中没有明确使用,但是一旦using语句终止,将调用谁的dispose方法?

叫我一个整洁的傻瓜,但我不喜欢在整个地方突然出现灰色警告。

2 个答案:

答案 0 :(得分:7)

如果您不使用它,请将其删除。以下是完全有效的:

using (new DialogWindow(Dialogs.MyDialogType))
{
    //Some action here
}

我们在基础架构中经常使用这个,因为我们使用IDisposable来记录代码块的进入/退出,所以我们可以这样做:

using (_log.Enter("some block")) {

}

没有分配变量,但using将正常处理该对象。

答案 1 :(得分:3)

如果您不使用变量,则可以执行以下操作

//unused variable will not give warning
using (new DialogWindow(Dialogs.MyDialogType))
{
   //Some action here
}