Znaczenie poziomu ostrzeżenia programu Visual Studio?

92

Na karcie kompilacji w projekcie aplikacji sieci Web mam ustawienie o nazwie „Poziom ostrzeżenia”. Mogę ustawić wartość od 0 do 4. Co oznaczają te wartości? Czy wartość 0 będzie bardziej rygorystyczna i wygeneruje więcej ostrzeżeń, czy odwrotnie? Nie udało mi się jeszcze znaleźć żadnej dokumentacji na ten temat, ale być może szukam w złym miejscu.

Jon Tackabury
źródło

Odpowiedzi:

108

Ten link pokazuje definicje poziomów ostrzeżeń (zakładam, że używasz kodu C # w projekcie sieci Web). Poziom 4 jest najbardziej rygorystyczny.


  • 0: wyłącza wysyłanie wszystkich komunikatów ostrzegawczych.
  • 1: Wyświetla poważne komunikaty ostrzegawcze.
  • 2: Wyświetla ostrzeżenia poziomu 1 oraz niektóre, mniej poważne ostrzeżenia, takie jak ostrzeżenia o ukrywaniu członków klasy.
  • 3: Wyświetla ostrzeżenia poziomu 2 oraz pewne, mniej poważne ostrzeżenia, takie jak ostrzeżenia o wyrażeniach, które zawsze przyjmują wartość prawda lub fałsz .
  • 4: Wyświetla wszystkie ostrzeżenia poziomu 3 oraz ostrzeżenia informacyjne. To jest domyślny poziom ostrzeżenia w wierszu poleceń.
mwigdahl
źródło
Dzięki, właśnie tego szukałem.
Jon Tackabury
7
Czy mogę zasugerować skopiowanie poziomów w swojej odpowiedzi na wypadek, gdyby link został uszkodzony. Coś, co rzadko się zdarza w witrynie internetowej firmy Microsoft. : D
Samuel
10

Wyższe jest bardziej rygorystyczne. Wyświetlenie wszystkich ostrzeżeń, które mogą oznaczać dużo dla Twojej aplikacji, może być denerwujące, ale poświęcenie czasu na ich wyczyszczenie może Cię wiele nauczyć.

royatl
źródło
Popieram to. Może to być fajna opcja, np. W przypadku projektów testów jednostkowych, w których włączenie zestawu reguł może być przesadą lub nawet nieodpowiednie dla danego typu kodu.
Oliver Schimmer
8

Możesz sprawdzić poziomy Microsoftu tutaj . Poziom 0 zasadniczo nie oznacza żadnego, podczas gdy poziom 4 będzie najbardziej rygorystyczny.

itsmatt
źródło
8

0 całkowicie wyłącza ostrzeżenia, a 4 to najbardziej szczegółowy poziom. Zobacz dokumentację tutaj, która ma te same poziomy ostrzegawcze.

Adrian Grigore
źródło
0

Ponadto F # przechodzi do poziomu ostrzeżenia 5:

--warn: poziom ostrzeżenia

Ustawia poziom ostrzegawczy (od 0 do 5). Poziom domyślny to 3. Każde ostrzeżenie ma przypisany poziom na podstawie jego wagi. Poziom 5 daje więcej, ale mniej dotkliwych ostrzeżeń niż poziom 1.

Ostrzeżenia poziomu 5 to: 21 (rekurencyjne użycie sprawdzane w czasie wykonywania), 22 (niech rec oceniane poza kolejnością), 45 (pełna abstrakcja) i 52 (kopia obronna)

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/compiler-options

chuckc
źródło
-2

Na przykład ustawienie poziomu ostrzeżenia na 4 lub /W4oznacza, że ​​kompilator potraktuje wszystkie ostrzeżenia jako błędy. Głównie chodzi o to, jak kompilator reaguje, gdy widzi coś, z czego nie czuje się dobrze. A tak przy okazji, poziom 0 zwojów wszystkich ostrzeżeń.

dirkgently
źródło
8
Poziom 0 wyłącza ostrzeżenia, ale poziom 4 nie traktuje ostrzeżeń jako błędów - powoduje wyświetlenie wszystkich ostrzeżeń poziomu 3 oraz ostrzeżeń informacyjnych.
zastrowm