2

我需要调用一个返回一些我不需要的值的函数。通常,我只会将其传送到ignore. 但是如果返回值是一个IDisposable呢?

操作员是否ignore负责处理传递的参数?从它的源代码看来,它没有:

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

所以为了这个目的,我没有写use __ = someFunc (),而是使用这个函数:

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

// usage example
someFunc () |> dispose

我想知道,这是正确的方法,还是已经有这样的内置运算符?或者只使用就可以了ignore吗?

4

2 回答 2

5

我会用using.

using (someFunc ()) ignore

另一种选择是use,它是一种语言构造而不是函数。

use x = someFunc()
()
于 2013-07-19T08:38:23.730 回答
5

关于什么:

someFunc().Dispose()
于 2013-07-19T09:54:10.017 回答