CA1514: избегайте избыточного аргумента длины
Свойство | Значение |
---|---|
Идентификатор правила | CA1514 |
Заголовок | Избегайте избыточного аргумента длины |
Категория | Ремонтопригодность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 9 | Как предложение |
Причина
Аргумент избыточной длины передается String.Substringв , Span<T>.SliceReadOnlySpan<T>.Sliceили Memory<T>.Slice при срезе в конец строки или буфера.
Описание правила
Явно вычисляемый аргумент длины может быть подвержен ошибке и не является ненужным при нарезке до конца строки или буфера.
Код, который пропускает аргумент длины, является более удобочитаемым и обслуживаемым.
Устранение нарушений
Удалите аргумент длины.
Пример
В следующем фрагменте кода показано нарушение CA1514:
string message = "Hello World!";
string world = message.Substring(6, message.Length - 6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6, message.Length - 6) ' "World!"
Следующий фрагмент кода исправляет нарушение.
string message = "Hello World!";
string world = message.Substring(6); // "World!"
Dim message As String = "Hello World!"
Dim world As String = message.Substring(6) ' "World!"
Когда лучше отключить предупреждения
Нарушение этого правила можно безопасно скрыть, если вы не беспокоитесь об удобстве обслуживания кода.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA1514
// The code that's violating the rule is on this line.
#pragma warning restore CA1514
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none
в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA1514.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.