使用vs使用:首选样式?

jcc*_*333 3 .net f#

在F#中,use对我来说似乎更具可读性,但using本质上更具说明性.是否有一般的经验法则可以在源头中受到青睐?

Tom*_*cek 8

我通常更喜欢use.该using函数在use不存在的时候已经存在于库中,因此using即使在use关键字更有意义的情况下,一些较旧的F#示例也可能会使用.

using当您想要更明确地指定范围时,该函数可能仍然有意义:

using (new StreamWriter(..)) (fun sw -> 
  sw.Write("hi"))
printfn "Something more here"
Run Code Online (Sandbox Code Playgroud)

但即使这样也可以使用use:

( use sw = new StreamWriter(..)
  sw.Write("hi") )
printfn "Something more here"
Run Code Online (Sandbox Code Playgroud)

use关键字的另一个好处是,您可以在序列表达式中使用它(例如,从文件内容生成集合时)和异步工作流(用于管理网络通信期间分配的连接).