다음을 통해 공유


CA1030: 적절한 경우 이벤트를 사용하십시오.

속성
규칙 ID CA1030
타이틀 적절한 경우 이벤트를 사용하세요.
범주 디자인
수정 사항이 주요 변경인지 여부 주요 변경 아님
.NET 8에서 기본적으로 사용 아니요

원인

메서드 이름은 다음 중 하나로 시작됩니다.

  • AddOn
  • RemoveOn
  • Fire
  • Raise

기본적으로 이 규칙은 외부에 표시되는 메서드만 확인하지만 이는 구성 가능합니다.

규칙 설명

이 규칙에서는 보통 이벤트에 사용되는 이름을 갖는 메서드를 찾아냅니다. 이벤트는 관찰자 또는 Publish-Subscribe 디자인 패턴을 따르며 한 개체의 상태 변경 내용을 다른 개체와 통신해야 하는 경우에 사용됩니다. 명확하게 정의된 상태 변경에 대한 응답으로 메서드를 호출할 경우에 메서드는 이벤트 처리기에서 호출해야 합니다. 메서드를 호출하는 개체는 메서드를 직접 호출하는 대신 이벤트를 발생시켜야 합니다.

단추를 클릭하는 것과 같은 사용자 작업이 코드 세그먼트를 실행하는 사용자 인터페이스 애플리케이션에 몇 가지 일반적인 이벤트 예제가 있습니다. .NET 이벤트 모델은 사용자 인터페이스로 제한되지 않습니다. 하나 이상의 개체에 상태 변경 내용을 전달해야 하는 모든 곳에서 이 모델을 사용해야 합니다.

위반 문제를 해결하는 방법

개체의 상태가 변경될 때 메서드가 호출되면 .NET 이벤트 모델을 사용하도록 디자인을 변경하는 것이 좋습니다.

경고를 표시하지 않는 경우

메서드가 .NET 이벤트 모델에서 작동하지 않는 경우에는 이 규칙의 경고를 표시하지 마세요.

경고 표시 안 함

단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.

#pragma warning disable CA1030
// The code that's violating the rule is on this line.
#pragma warning restore CA1030

파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 구성 파일에서 심각도를 none으로 설정합니다.

[*.{cs,vb}]
dotnet_diagnostic.CA1030.severity = none

자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.

분석할 코드 구성

다음 옵션을 사용하여 이 규칙이 실행될 코드베이스 부분을 구성합니다.

이 규칙, 적용되는 모든 규칙 또는 적용되는 이 범주(디자인)의 모든 규칙에 대해 이 옵션을 구성할 수 있습니다. 자세한 내용은 코드 품질 규칙 구성 옵션을 참조하세요.

특정 API 화면 포함

접근성을 기반으로 이 규칙을 실행할 코드베이스의 파트를 구성할 수 있습니다. 예를 들어 규칙이 퍼블릭이 아닌 API 표면에서만 실행되도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.

dotnet_code_quality.CAXXXX.api_surface = private, internal