【发布时间】:2009-03-24 00:37:19
【问题描述】:
我正在尝试在 F# 中初始化一个 XmlDocument,而不会污染全局命名空间 - 我唯一的功能背景来自 LISP,其中可以使用“let”创建一个新范围。我想出了这个:
let doc =
let reader = new XmlTextReader("url")
let doc = new XmlDocument()
doc.Load(reader)
doc
当我的第一个解决方案不起作用时,我感到相当惊讶:
let doc = new XmlDocument() in
let reader = new XmlTextReader("url");
doc.Load(reader)
print_any reader.ToString // Still in scope!
做我想做的事的首选方式是什么?
【问题讨论】:
-
哇不错。如果 Brian 没有回答这个问题,您应该考虑将其发送到 fsbugs@microsoft.com。
-
我打开了错误 4693。:) 避免在#light 代码中使用“let...in”。