| 속성 | 값 |
|---|---|
| 규칙 ID | CA1725 |
| 제목 | 매개 변수 이름은 기본 선언과 일치해야 합니다. |
| 범주 | 이름 지정 |
| 수정 사항이 주요 변경인지 여부 | 주요 변경 |
| .NET 10에서 기본적으로 사용하도록 설정 | 아니요 |
원인
메서드 재정의의 매개 변수 이름이 메서드 기본 선언의 매개 변수 이름이나 메서드 인터페이스 선언의 매개 변수 이름과 일치하지 않습니다.
기본적으로 이 규칙은 외부에 표시되는 메서드만 확인하지만 이는 구성 가능합니다.
규칙 설명
재정의 계층 구조에서 매개 변수 이름을 일관되게 지정하면 메서드 재정의를 더 편리하게 사용할 수 있습니다. 파생된 메서드의 매개 변수 이름이 기본 선언의 이름과 다르면 메서드가 기본 메서드의 재정의인지 메서드의 새 오버로드인지를 혼동할 수 있습니다.
위반 문제를 해결하는 방법
이 규칙의 위반 문제를 해결하려면 기본 선언과 일치하도록 매개 변수 이름을 바꿉니다. 이 수정 사항은 매개 변수 이름을 지정하는 호출자에 대한 호환성을 깨뜨리는 변경 사항입니다.
Example
public interface IUserService
{
int GetAge(int id);
}
public class UserService : IUserService
{
// Violates CA1725: Parameter name should match the base declaration ('id')
// for consistency with IUserService
public int GetAge(int userId)
{
throw new NotImplementedException();
}
}
경고를 표시하지 않는 경우
이전에 출시된 라이브러리에서 보이는 메서드를 제외하고는 이 규칙의 경고를 억제하지 마세요.
경고 표시 안 함
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
#pragma warning disable CA1725
// The code that's violating the rule is on this line.
#pragma warning restore CA1725
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 none에서 심각도를 으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.CA1725.severity = none
자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.
분석할 코드 구성
다음 옵션을 사용하여 이 규칙이 실행될 코드베이스 부분을 구성합니다.
이 규칙, 적용되는 모든 규칙 또는 적용되는 이 범주의 모든 규칙(명명)에 대해 이 옵션을 구성할 수 있습니다. 자세한 내용은 코드 품질 규칙 구성 옵션을 참조하세요.
특정 API 화면 포함
api_surface 옵션을 설정하여 접근성에 따라 이 규칙을 실행할 코드베이스의 일부를 구성할 수 있습니다. 예를 들어 규칙이 퍼블릭이 아닌 API 표면에서만 실행되도록 지정하려면 프로젝트의 .editorconfig 파일에 다음 키-값 쌍을 추가합니다.
dotnet_code_quality.CAXXXX.api_surface = private, internal
메모
XXXX
CAXXXX 부분을 해당 규칙의 ID로 바꿉니다.
.NET