我希望满足编译器警告级别5。因此我在一个文件FS0052中有32条警告。已复制该值,以确保此操作不会使原始变量变异
我遵循的唯一SO post似乎与此警告相关,但是由于我的类型是Microsoft生成的类型提供程序,因此我不能只是将字段标记为可变以使警告静音。加上使一些实际上不应该被改变的可变性看起来像是骇客,而不是修复程序。
例子:
.GetValueOrDefault()
.ToString()
.toString()
从适当的功能角度来看,处理此警告的推荐方法是什么?
最佳答案
不知道您是否仍然感兴趣。
在我看来,当不确定方法调用是否会破坏原始实例的状态时,编译器会发出警告(这主要应来自F#之外的任何库)。
就我而言,将值显式复制到变量中通常可以减轻警告。例如:
open System
// generate the warning due to "ToString()"
let DirSeparator = Path.DirectorySeparatorChar.ToString()
// no warning
let ExplicitCopy = let x = Path.DirectorySeparatorChar in x.ToString()
let Alternative = sprintf "%c" Path.DirectorySeparatorChar
关于f# - 我如何满足编译器消除警告0052的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773576/