我有一个方法Foo
,它返回一个IDisposable
对象。通常情况下,当调用此方法时,会使用返回值。但是,在这种情况下,我需要调用该方法,但不需要返回值。正确的做法是立即调用Dispose
吗?如果是这样的话,下面的哪个方法更好呢?
Foo().Dispose();
或者
using(Foo())
{
}
或者只是
Foo();
我有一个方法Foo
,它返回一个IDisposable
对象。通常情况下,当调用此方法时,会使用返回值。但是,在这种情况下,我需要调用该方法,但不需要返回值。正确的做法是立即调用Dispose
吗?如果是这样的话,下面的哪个方法更好呢?
Foo().Dispose();
或者
using(Foo())
{
}
Foo();
Foo().Dispose();
但这真的不重要(在前两者之间)。如果你只使用"Foo();",那么你就没有遵守Dispose模式,这是不正确的。你可以尝试确定对象正在创建哪些资源,也许有一种方法可以在不创建需要处理的对象的情况下获得所需的信息。
Foo().Dispose()
可能会抛出 NRE 异常。使用 using
更好。 - Alexei LevenkovFoo()
返回null
并导致NRE。 - Alexei Levenkov