Nosrama
Nosrama

Reputation: 14964

Is there a way to suppress warnings in C# similar to Java's @SuppressWarnings annotation?

Is there a way to suppress warnings in C# similar to Java's @SuppressWarnings annotation?

Failing that, is there another way to suppress warnings in Visual Studio?

Upvotes: 54

Views: 36082

Answers (8)

TroySteven
TroySteven

Reputation: 5157

You can use the SuppressMessage data annotation which will prevent the warning.

It looks something like this:

[SuppressMessage("Reason #Enter whatever you'd like", "ID, must match what intellsense is showing it looks something like this: IDE0001", Justification = "(optional, your own description")]

Here is a real world example:

[SuppressMessage("IntelliSenseCorrection", "IDE0001", Justification = "Do Not Remove <T> Variable, It's Required For Dapper")]

Upvotes: 3

Sam Harwell
Sam Harwell

Reputation: 99859

I highly recommend using the following form

#pragma warning disable 649 // Field 'field' is never assigned to, and will always have its default value 'value'

#pragma warning restore 649

The comment on the first line is taken from the first like of the MSDN documentation for Compiler Warning (level 4) CS0649. Since warnings are numbered in C#, this is your only reference to what's actually going on in the code when you see a warning disabled. Placing it at the end of the line is the only way to get the reason to show up in the search results window when you do a search in your whole solution for pragma warning.

You can identify the warning numbers by looking in the Output window after building your project. Make sure it says Show output from: Build.

Upvotes: 9

HerpDerpington
HerpDerpington

Reputation: 4445

Have a look at the SuppressMessageAttribute in VisualStudio: http://msdn.microsoft.com/en-us/library/ms182068.aspx

Upvotes: 3

Will Marcouiller
Will Marcouiller

Reputation: 24132

I guess you could also try to review the project or solution properties and set your warning level to a lower level or so. Otherwise, the other responses are perhaps better.

Upvotes: 0

Tam&#225;s Szelei
Tam&#225;s Szelei

Reputation: 23921

Yes.

For disabling, use:

#pragma warning disable 0169, 0414, anyothernumber

Where the numbers are the identifiers of the warnings that you can read from compiler output.

To reenable the warnings after a particular part of code (which is a good idea) use:

#pragma warning restore 0169, anythingelse

This way you can make the compiler output clean, and keep yourself safe because the warnings will only be suppressed for that particular part of code (where you made sure you don't need to see them).

Upvotes: 82

Robban
Robban

Reputation: 6802

Yes there is you can use the pragma warning annotation like this:

#pragma warning disable 414
//some code that generates a warning
#pragma warning restore 414

omitting the numbers disables and restores all warning codes...

Upvotes: 22

Razzie
Razzie

Reputation: 31212

There is. See the MSDN page on how to suppress compiler warnings.

From Visual Studio, go to your project properties, select the build tab, and enter the warning number in the Suppress Warnings field.

From code, to disable specific warnings, you can use the #pragma directive:

public class MyClass
{
  #pragma warning disable 0168
  // code

  // optionally, restore warnings again
  #pragma warning restore 0168
  // more code
}

Upvotes: 6

Marcin Deptuła
Marcin Deptuła

Reputation: 11957

You could check #pragma directives: http://msdn.microsoft.com/en-us/library/441722ys(VS.80).aspx.

Upvotes: 3

Related Questions