由于复制/粘贴,我在自己的代码中发现了一个错误。相同的值名称被复制/粘贴在同一范围内。
let func() =
let a = 1
let a = something_else
....
在 C# 中,我不会通过编译。有没有办法禁用阴影?至少在同一级别的范围内?
谢谢
您不能在 F# 中禁用阴影——这是一个重要的语言特性。
但是,您可以指示编译器发出警告或错误,这将帮助您捕获意外阴影的情况。
在项目属性中,添加--warnon:1182
到“其他标志”文本框(在“构建”选项卡上,在平台目标下拉列表下)。当您不小心隐藏变量并导致它无法在任何地方使用时,这会触发编译器警告。如果您希望这些情况导致编译失败,您还可以添加1182
到“构建”选项卡的“将警告视为错误”部分下的“特定警告”文本框。
最后——安装Visual F# Power Tools扩展。它提供了额外的语法高亮功能,并会指示未使用的变量,以便在您的代码中轻松发现它们。