Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
| Property | valor |
|---|---|
| ID da regra | CA1845 |
| Título | Use span-based 'string. Concat» |
| Categoria | Desempenho |
| A correção está quebrando ou não quebrando | Sem quebra |
| Habilitado por padrão no .NET 10 | Como sugestão |
Motivo
Esta regra localiza expressões de concatenação de cadeia de caracteres que contêm Substring chamadas e sugere a substituição Substring e AsSpan o uso da sobrecarga baseada em extensão de String.Concat.
Descrição da regra
A chamada Substring produz uma cópia da substring extraída.
AsSpan Usando em vez de Substring e chamando a sobrecarga de que aceita spans, você pode eliminar a alocação de cadeia de string.Concat caracteres desnecessária.
Como corrigir violações
Para corrigir violações:
- Substitua a concatenação de cadeia de caracteres por uma chamada para
string.Concat, e - Substitua chamadas para por
Substringchamadas paraAsSpan.
O trecho de código a seguir mostra exemplos de violações e como corrigi-las.
using System;
class Example
{
public void Method()
{
string text = "fwobz the fwutzle";
// Violation: allocations by Substring are wasteful.
string s1 = text.Substring(10) + "---" + text.Substring(0, 5);
// Fixed: using AsSpan avoids allocations of temporary strings.
string s2 = string.Concat(text.AsSpan(10), "---", text.AsSpan(0, 5));
}
}
Quando suprimir avisos
Não suprima avisos desta regra. Não há razão para usar Substring mais AsSpan quando a substring extraída está sendo passada apenas para um método com um equivalente baseado em extensão.