C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
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.
Example. As we begin, please remember that when the C# compiler detects unreachable code, it will report a warning. The compiler reports these errors to improve code quality. In this example, the if (false) statement results in unreachable code.
Tip: By wrapping the #pragma warning disable directive and #pragma warning restore directive around the statement, we can hide the warning.
So: When you compile this program, no warnings are reported by the C# compiler.
C# program that uses pragma directive
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.
Tip: This is probably more trouble than it is worth. It might be better to just disable all warnings in small blocks of code.
Discussion. 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.
Summary. The #pragma warning disable and restore directives give you the ability to influence how the compiler reports warnings. If you expect a certain warning to occur, and don't want to fix it, #pragma directives are useful.