“忽略”IDisposable的正确方法是什么?

时间:2013-07-19 08:33:39

标签: f#

我需要调用一个返回一些我不需要的值的函数。通常情况下,我会将其传递给ignore。但是,如果返回的值是IDisposable

,该怎么办?

ignore运算符是否负责处理传递的参数?从它的源代码看起来不是:

[<CompiledName("Ignore")>]
let inline ignore _ = ()

因此,为了这个目的,我使用这个函数而不是写use __ = someFunc ()

let inline dispose (x : #IDisposable) = x.Dispose()

// usage example
someFunc () |> dispose

我想知道,这是正确的做法,还是已经有这样的内置运营商?或者只使用ignore吗?

2 个答案:

答案 0 :(得分:5)

我会使用using

using (someFunc ()) ignore

另一个选项是use,它是一种语言结构而不是函数。

use x = someFunc()
()

答案 1 :(得分:5)

怎么样:

someFunc().Dispose()