F#借助use和using关键字管理资源。资源可以是数据、文件或网络等。它从操作系统或其他服务提供商获取资源,以便可以将其提供给其他应用。
它以可预测的方式迅速释放资源。System.IDisposal接口的Dispose方法隐式释放空闲的资源。
F#使用两种处置模式:Use Binding和Using函数。
F# use绑定
它提供与LET绑定相同的功能。调用Disposal方法释放长期不使用的资源。
让无涯教程来看一个例子。
open System.IO let ReleaseFile fileName content = use releaseFileName = File.CreateText(fileName) releaseFileName.WriteLine("{0}", content.ToString() )ReleaseFile "textFile.txt" "This file contains data"
在上面的示例中,在执行writeline()方法之后。使用关键字隐式调用Dispose()方法并释放文件资源。
F# use函数
Using函数创建一个必须释放的对象。它既可以在lambda函数中使用,也可以在函数代码中使用。
open System.IO let ReleaseFile fileName content = using (System.IO.File.CreateText(fileName)) ( fun textFile -> textFile.WriteLine("{0}", content.ToString() ) )ReleaseFile "file/textFile.txt" "This is a text file. \nIt contains data."