F# 禁用每行的编译器警告

F# 禁用每行的编译器警告,f#,compiler-warnings,F#,Compiler Warnings,是否可以禁用特定行的编译器警告 在C#中,这是有效的: [Obsolete] class Old { } #pragma warning disable 612 var oldWithoutWarning = new Old(); #pragma warning restore 612 var oldWithWarning = new Old(); 这对于禁用不完整模式匹配警告非常有用,尤其是当函数接受DU的特定情况时。否,使用\nowarn时,每个文件(或可能“从这里到文件

是否可以禁用特定行的编译器警告

在C#中,这是有效的:

[Obsolete]
class Old { }

#pragma warning disable 612
    var oldWithoutWarning = new Old();
#pragma warning restore 612
    var oldWithWarning = new Old();

这对于禁用不完整模式匹配警告非常有用,尤其是当函数接受DU的特定情况时。

否,使用
\nowarn
时,每个文件(或可能“从这里到文件底部”)都会关闭警告。(或者在使用项目属性时按编译/项目进行)--nowarn命令行。)

由于所有内容都是F#中的表达式,因此不难拉出一行或一行的一部分并将其放入自己的文件中

我的问题示例,其中
模式匹配警告了空列表的可能性,但传递到
Seq.fold的状态始终包含至少一个项目的列表

module FoldBookmarks
#nowarn "25"

let foldIntoBookmarks: (string * int * int) seq -> XamlReport.PDF.Bookmark seq = 
        Seq.fold (fun ((tl,pl,acc)::l) (t,p,_) -> (t,acc,p+acc)::((tl,pl,acc)::l)) [("",0,1)]
        >> Seq.map(fun (x,y,_) -> PDF.Bookmark(Title=x, PageNumber= System.Nullable(y)))

这可能是功能请求吗?:-)是的,我们可能已经有一个日志,但我看我们不会很快这样做;有一个很长的“很好拥有”的功能列表,我们几乎没有时间去了解所有的基本内容。如果真的让您感到不安,我建议将需要关闭此警告的少数实现放在一个单独的文件中,并在该文件上使用
\nowarn
。顺便问一下,F#功能请求应该发送/发布到哪里?Visual Studio下的位置是否正确?使用Connect查找bug;用户语音网站现在最适合功能建议:F#不再使用Visual Studio用户语音;它有自己的特点。此处需要此特定功能: