Можно ли отключить предупреждения компилятора для определенных строк?
В C # это работает:
[Obsolete]
class Old { }
#pragma warning disable 612
var oldWithoutWarning = new Old();
#pragma warning restore 612
var oldWithWarning = new Old();
Это было бы очень полезно для отключения предупреждений о неполных совпадениях с шаблоном, особенно когда функция принимает конкретный случай DU.
2 ответа
Нет, предупреждения отключены для каждого файла (или, возможно, «отсюда до конца файла») при использовании #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)))
Похожие вопросы
Новые вопросы
f#
F # - это сжатый, выразительный и эффективный функциональный и объектно-ориентированный язык для .NET, который помогает вам писать простой код для решения сложных задач.