我认为像Shadowing and Nested function、immutable in F#、f# duplicate definition和FSharp for fun and profit comment中所描述的现有值的遮蔽,似乎与使F#如此强大的不可变性和类型安全的概念相违背。在F#中,遮蔽different于C#。我花了很长时间才发现我的代码中的一个错误是由于同一作用域内名称的无意遮蔽造成的。是否有一种方法可以在VS中为遮蔽值提供编译器警告?
我知道在某些情况下它可能很有用,例如对于已检查的算术。