
#pragma disables the reporting of a warning. It is useful when you understand and expect the warning—but still want to disable it. With #pragma we can disable a specific warning or all warnings.
As we begin, please remember that when the C# compiler detects unreachable code, it will report a warning. In this example, the if (false) statement results in unreachable code. By wrapping the #pragma warning disable directive and #pragma warning restore directive around the problematic statement, we can hide the warning. When you compile this program, no warnings are reported.
This C# example program shows how to use the #pragma directive.
Program that uses #pragma directive [C#]
using System;
class Program
{
static void Main()
{
// This example has unreachable code!
// ... The pragma directives hide the warning.
#pragma warning disable
if (false)
{
Console.WriteLine("Perls");
}
#pragma warning restore
}
}
Result
When compiled, no warnings are issued.
Specifying specific warnings. You can optionally add another value after the directives. As the C# specification shows, you can use #pragma warning disable 612 to disable the C# compiler's warning number 612. This is probably more trouble than it is worth; it might be better to just disable all warnings in small blocks of code.

I think the #pragma warning disable and restore directives are useful in many programs. When developing, I sometimes will use the if (false) construction to comment out code but compile it anyways. This ensures that the code will not stop compiling and refactoring will update it. I can use the #pragma directives to indicate that I know the code is unreachable already and don't want to fix it.
The #pragma warning disable and restore directives give you the ability to influence how the compiler reports warnings in the C# language. If you expect a certain warning to occur, and don't want to fix it, the #pragma directives shown here are useful.
Directives