[C#] C #-사용자 지정 사용되지 않는 경고를 선택적으로 억제

내가 사용하고 Obsolete특정 방법을 사용하는 경우 경고를 표시하는 (처럼 동료 프로그래머들에 의해 제안) 속성을.

SuppressMessage사용이 정당한 지점에서 CodeAnalysis와 유사한 경고를 억제하는 방법 이 있습니까?

[Obsolete("Some message")]경고 618 [Obsolete]을 생성하는 메시지와 경고 612를 생성하는 메시지가없는 일반 속성 이 작동해야합니다 .



답변

사용 #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");
    }
}

“나쁜”전화를 놓치지 않도록 나중에 경고를 복원하십시오.


답변

의도는 쓸모에 대한 경고를 비활성화하는 것입니다 사용량 에 관계없이 구조가 표시되어 있는지 여부 [Obsolete][Obsolete("Message")]. 따라서 CS0612 CS0618을 모두 사용 하십시오 .

#pragma warning disable 612, 618 

...

#pragma warning restore 612, 618 


답변

먼저 경고 / 오류 번호를 얻는 방법은 다음과 같습니다 .

  1. 프로젝트를 다시 빌드 하십시오.
  2. 출력 창으로 이동하십시오 .
  3. 억제하려는 경고 / 오류 줄을 찾으십시오.
    예를 들면 다음과 같습니다.
    C:\Users\Username\Documents\Visual Studio 2010\Projects\Projectname\Classname.cs(203,7): warning CS0162: Unreachable code detected
  4. ” ” 뒤에 숫자 부분 복사하십시오 CS.
  5. 존 소총은 그런 다음 진행 말한다 .

( Jon Skeet의 말 대로 항상 진행하십시오 .)


답변

#pragma경고 비활성화 지시문을 찾고 있습니다.

기본적으로 .cs 파일의 호출 사이트 위에 다음 명령을 추가하십시오.

#pragma warning disable 612
SomeMethodCall

612는 더 이상 사용되지 않는 메소드를 호출하기위한 오류 메시지 ID입니다.


답변