使用vs使用:首选样式?

时间:2013-10-04 19:06:50

标签: .net f#

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

1 个答案:

答案 0 :(得分:8)

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

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

using (new StreamWriter(..)) (fun sw -> 
  sw.Write("hi"))
printfn "Something more here"

但即便如此,也可以使用use

撰写
( use sw = new StreamWriter(..)
  sw.Write("hi") )
printfn "Something more here"

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