Visual Studio에서 "사용하지 않은" 컴파일러 경고를 제거하려면 어떻게 해야 합니까?
예를 들어 이 컴파일러 경고 메시지가 뜨면
'회사'라는 이벤트.Some Control.Search Click'은 사용되지 않습니다.
하지만 댓글을 달면 이 이벤트를 사용하려는 XAML 페이지에 대해 20개의 새로운 경고가 뜨기 때문에 사용되는 것으로 알고 있습니다.
왜 그러고 있어?이 경고를 없애기 위한 요령이 있나요?
이는 경고 67인 것처럼 보이므로 다음과 같이 억제할 수 있습니다.
#pragma warning disable 67
이벤트 선언 후 가능한 한 빨리 복원하는 것을 잊지 마십시오.
#pragma warning restore 67
하지만, 다시 한 번 확인해 보고 구독만 하는 것이 아니라 어딘가에서 이벤트를 진행하고 있는지 확인해 보겠습니다.이벤트를 코멘트할 때 컴파일러가 20개의 경고를 발하고 오류가 20개가 아니라는 사실도 의심스럽다.
이 경고와 특히 인터페이스에 적용되는 방법에 대한 흥미로운 기사도 있습니다. "미사용" 이벤트를 처리하는 방법에 대한 좋은 제안도 있습니다.중요한 부분은 다음과 같습니다.
정답은 이벤트에서 기대하는 바를 명확하게 하는 것입니다.이 경우는 아무것도 아닙니다.
public event EventHandler Unimportant { add { } remove { } }이를 통해 경고와 컴파일러에 의해 생성되는 일반 이벤트의 추가 구현이 완전히 억제됩니다.또 다른 이점으로는 아무것도 하지 않는 이 구현이 정말 최선의 구현인지 생각해 볼 필요가 있습니다.예를 들어 이벤트가 그다지 중요하지 않고 지원되지 않는 경우에도 해당 기능에 의존하는 클라이언트에 장애가 발생할 가능성이 높다면 지원 부족을 명시적으로 표시하고 예외를 발생시켜 신속하게 실패하는 것이 좋습니다.
public event EventHandler Unsupported { add { throw new NotSupportedException(); } remove { } }물론 기능의 일부를 사용하지 않고 유용하게 구현할 수 있는 인터페이스는 인터페이스가 최적으로 응집되어 있지 않기 때문에 다른 인터페이스로 분할할 필요가 있음을 나타내는 경우가 있습니다.
인터페이스에서 이벤트를 구현해야 하는 경우 구현이 필요하지 않은 경우 경고를 피하기 위해 다음을 수행할 수 있습니다.
public event EventHandler CanExecuteChanged { add{} remove{} }
두 번째 가장 좋은 방법은 누군가가 이벤트에 가입하려고 할 때 예외를 둠으로써 이벤트가 지원되지 않는다는 것을 명확히 말하는 것이다.
public event RoutedEventHandler SearchClick
{
add { throw new NotSupportedException(); }
remove { throw new NotSupportedException(); }
}
여기에서는, 다른 버전으로서add ★★★★★★★★★★★★★★★★★」remove메서드가 비어 있으면 이벤트에 대한 구독이 자동으로 무시됩니다.
최선의 해결책은 코드를 리팩터링하는 것입니다.가능하다면 이벤트 선언을 구현자에게 끌어당기는 것입니다.
마지막 수단으로 다음과 같이 경고를 비활성화할 수도 있습니다.
#pragma warning disable 67
public event RoutedEventHandler SearchClick;
#pragma warning restore 67
다음 작업도 수행할 수 있습니다.
public event EventHandler MyEvent = delegate {}
컴파일러는 XAML 코드로 사용되고 있는 것을 인식하지 못하는 것 같습니다.이벤트 정의에서 경고를 억제해 보십시오.
또한, 실제로 어딘가에서 이벤트를 개최하고 있는지 확인하십시오.
개별 경고를 억제할 수 있습니다.
\Program.cs(13,20): warning CS0219: The variable 'foo' is assigned but its value is never used
이 경우 CS0219는 할당되었지만 사용되지 않은 변수에 대한 경고입니다./nowarn:0219 플래그를 사용하거나 프로젝트 속성 창에 오류 번호를 추가할 수 있습니다("빌드" 아래에서 선두 CS를 삭제하십시오).는 이 클래스의 모든 경고를 억제합니다.
'아까보다'를 붙일 도 있어요.<NoWarn>67</NoWarn>의 에 따라
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
...
<NoWarn>67</NoWarn>
</PropertyGroup>
언급URL : https://stackoverflow.com/questions/1093315/how-do-i-get-rid-of-some-event-never-used-compiler-warnings-in-visual-studio
'codememo' 카테고리의 다른 글
| 파일 타입과 iPhone 어플리케이션을 관련짓는 방법 (0) | 2023.04.13 |
|---|---|
| 오리진 마스터 분기의 파일 버전으로 되돌리는 방법 (0) | 2023.04.13 |
| 카운트(*) vs. 카운트(1) vs. 카운트(pk): 어느 쪽이 좋은가? (0) | 2023.04.13 |
| 종속성 속성 SetValue()와 SetCurrentValue()의 차이점은 무엇입니까? (0) | 2023.04.13 |
| 클러스터된 인덱스와 비클러스터된 인덱스의 차이점은 무엇입니까? (0) | 2023.04.08 |