| 属性 | 值 |
|---|---|
| 规则 ID | CA1725 |
| 标题 | 参数名应与基方法中的声明保持一致 |
| 类别 | 命名 |
| 修复是中断修复还是非中断修复 | 重大 |
| 在 .NET 9 中默认启用 | 否 |
原因
某方法替代中的参数名与该方法的基声明中的参数名或该方法的接口声明中的参数名不一致。
默认情况下,此规则仅查看外部可见的方法,但这是可配置的。
规则说明
以一致的方式命名重写层次结构中的参数可以提高方法重写的可用性。 如果派生方法中的参数名与基声明中的名称不同,可能会导致无法区分出该方法是基方法的重写还是该方法的新重载。
如何解决冲突
若要解决此规则的冲突,请重命名参数以与基声明保持一致。 修复是指定参数名称的调用方的重大更改。
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。