Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA1725 |
| Заголовок | Имена параметров должны соответствовать базовому объявлению |
| Категория | Именование |
| Исправление является критическим или не критическим | Критическое |
| Включен по умолчанию в .NET 10 | No |
Причина
Имя параметра в переопределении метода не соответствует имени параметра в базовом объявлении метода или имени параметра в объявлении интерфейса метода.
По умолчанию это правило проверяет только видимые извне методы, но это поведение можно настроить.
Описание правила
Согласованное именование параметров в иерархии переопределений увеличивает удобство использования переопределений метода. Если имя параметра в производном методе отличается от имени в базовом объявлении, может возникнуть путаница в определении того, чем является метод: переопределением базового метода или новой перегрузкой.
Устранение нарушений
Чтобы устранить нарушение этого правила, переименуйте параметр в соответствии с базовым объявлением. Исправление является критическим изменением для вызывающих лиц, которые указывают имя параметра.
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 идентификатором применимого правила.