A diretiva de processamento #pragma possibilita a passagem de informações opcionais específicas do contexto ao compilador. Mais especificamente, essa diretiva existe para enviar mensagens ao compilador, informando como ele deve tratar warnings.
No código abaixo, o atributo
Obsolete faz com que o compilador gere uma warning quando o método Foo() é utilizado. Em uma configuração padrão, isso não teria nenhum problema. Mas em um nível de compilação “mais exigente” o código não iria compilar.
Código:
using System;
namespace
DevGoiasPragma
{
class Program
{
[Obsolete]
static void
Foo() { }
static void Main(string[] args)
{
Foo();
}
}
}
Warning:

Utilizando a diretiva #pragma podemos controlar o compilador de modo a habilitar e dasabilitar warnings. Veja:
Código:
using System;
namespace
DevGoiasPragma
{
class Program
{
[Obsolete]
static void
Foo() { }
static void Main(string[] args)
{
#pragma warning disable
Foo();
#pragma warning restore
}
}
}
Dessa forma nehuma warning existirá, em se tratando do conteúdo existente entre o disable e restore de #pragma warning. Podemos desabilitar somente um típo específico de warging ou uma lista, informado o código de cada uma. O exemplo abaixo, desabilita a warning “obsolete”
.
Trecho de Código:
#pragma warning
disable 612
Foo();
#pragma warning restore
612
Para especificar uma lista, utilize a vírgula como separador dos elementos.
#pragma warning “action” n1,
n2Bom pessoal, então é isso aí!
Só uma pergunta: vocês
já ouviram falar nessa diretiva antes?