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.