C# - wybiórczo eliminuje niestandardowe przestarzałe Ostrzeżenia

Używam atrybutu Obsolete (zgodnie z sugestią kolegów programistów), aby pokazać ostrzeżenie, jeśli dana metoda jest używana.

Czy istnieje sposób na wygaszenie Ostrzeżenia podobnego do CodeAnalysis ' SuppressMessage w miejscach, w których użycie jest uzasadnione?

To musi działać dla [Obsolete("Some message")], który generuje ostrzeżenie 618 i zwykły atrybut [Obsolete] bez komunikatu, który generuje ostrzeżenie 612.

Author: Caltor, 2009-06-09

4 answers

Użycie #pragma warning disable:

using System;

class Test
{
    [Obsolete("Message")]
    static void Foo(string x)
    {
    }

    static void Main(string[] args)
    {
#pragma warning disable 0618
        // This one is okay
        Foo("Good");
#pragma warning restore 0618

        // This call is bad
        Foo("Bad");
    }
}

Przywróć Ostrzeżenie później, aby nie przegapić "złych" połączeń.

 270
Author: Jon Skeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-09 06:18:33

Intencją jest wyłączenie ostrzeżenia dla przestarzałego użycia , niezależnie od tego, czy konstrukcja jest oznaczona[Obsolete] Czy [Obsolete("Message")]. Więc użyj obu CS0612 oraz CS0618 :

#pragma warning disable 612, 618 

...

#pragma warning restore 612, 618 
 133
Author: Jordão,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-11 16:34:33

Oto Jak uzyskać Ostrzeżenie / numer błędu w pierwszej kolejności:

  1. Przebuduj swój projekt.
  2. idź do Wyjście okno.
  3. Sprawdź linię Ostrzeżenia / błędu, który chcesz stłumić.
    Na przykład:
    C:\Users\Username\Documents\Visual Studio 2010\Projects\Projectname\Classname.cs(203,7): warning CS0162: Unreachable code detected
  4. skopiuj część numeru Po "CS".
  5. następnie postępować zgodnie z jon Skeet mówi.

(lepiej zawsze postępuj jak Jon Skeet mówi...)

 19
Author: Aaron Thoma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:04

Szukasz #pragma warning disable directive

Zasadniczo dodajesz następujące polecenie nad stroną wywołania w .plik cs.

#pragma warning disable 612
SomeMethodCall

612 jest identyfikatorem Komunikatu o błędzie wywołania przestarzałych metod

 9
Author: JaredPar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-09 05:33:09