Significados do nível de aviso do Visual Studio?

91

Na guia de compilação em um projeto de aplicativo da Web, tenho uma configuração chamada "Nível de aviso". Posso definir um valor de 0 a 4. O que esses valores significam? Um valor de 0 será mais estrito e gerará mais avisos ou vice-versa? Ainda não consegui encontrar nenhuma documentação sobre ele, mas talvez esteja procurando no lugar errado.

Jon Tackabury
fonte

Respostas:

107

Este link mostra as definições dos níveis de aviso (presumo que você esteja usando código C # em seu projeto da web). O nível 4 é o mais rígido.


  • 0: Desativa a emissão de todas as mensagens de advertência.
  • 1: Exibe mensagens de aviso severas.
  • 2: Exibe avisos de nível 1 mais alguns avisos menos graves, como avisos sobre como ocultar membros da classe.
  • 3: Exibe avisos de nível 2 mais alguns avisos menos graves, como avisos sobre expressões que sempre são avaliadas como verdadeiras ou falsas .
  • 4: Exibe todos os avisos de nível 3 mais avisos informativos. Este é o nível de aviso padrão na linha de comando.
mwigdahl
fonte
Obrigado, isso é exatamente o que eu estava procurando.
Jon Tackabury
7
Sugiro que você copie os níveis em sua resposta caso o link seja quebrado. Algo que raramente acontece com o site da Microsoft. : D
Samuel
10

Mais alto é mais estrito. Pode ser irritante ver todos os avisos que podem ou não significar muito para seu aplicativo, mas reservar um tempo para esclarecê-los pode ensinar muito a você.

royatl
fonte
Eu apoio isso. Pode ser uma boa opção, por exemplo, para projetos de teste de unidade, onde incluir seu conjunto de regras pode ser um exagero ou até mesmo impróprio para o tipo de código ali.
Oliver Schimmer,
8

0 desativa os avisos completamente, enquanto 4 é o nível mais detalhado. Veja a documentação aqui que tem os mesmos níveis de aviso.

Adrian Grigore
fonte
0

Além disso, F # sobe para o Nível de Aviso 5:

--warn: nível de aviso

Define um nível de aviso (0 a 5). O nível padrão é 3. Cada aviso recebe um nível com base em sua gravidade. O nível 5 fornece mais, mas menos graves, avisos do que o nível 1.

Os avisos de nível 5 são: 21 (uso recursivo verificado em tempo de execução), 22 (deixar rec avaliado fora de ordem), 45 (abstração completa) e 52 (cópia defensiva)

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

chuckc
fonte
-2

Por exemplo, definir um nível de aviso para 4 ou /W4significa que o compilador tratará todos os avisos como erros. É principalmente como o compilador reage quando vê algo sobre o qual não se sente bem. E, a propósito, um nível de 0 turnos de todos os avisos.

diretamente
fonte
8
O nível 0 desativa os avisos, mas o nível 4 não os trata como erros - ele "Exibe todos os avisos de nível 3 mais os avisos informativos."
zastrowm