Поделиться через


CA1725: имена параметров должны соответствовать базовому объявлению

Свойство Значение
Идентификатор правила 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 идентификатором применимого правила.