DA0001: StringBuilder de uso para concatenações
Identificação da regra |
DA0001 |
<strong>Categoria</strong> |
.NET Framework uso |
Métodos de criação de perfil |
Amostragem Instrumentação |
Message (Mensagem) |
Considere o uso de StringBuilder para concatenações |
Tipo de mensagem |
Aviso |
Causa
Chamadas para System.String.Concat são uma parte significativa dos dados de criação de perfil.Considere o uso de StringBuilder classe para construir seqüências de caracteres de vários segmentos.
Descrição da regra
A String objeto é imutável.Portanto, qualquer modificação na cadeia de caracteres cria um novo objeto de seqüência de caracteres e a coleta de lixo do original.Esse comportamento é o mesmo se você chama explicitamente o String. Concat ou usa os operadores de concatenação de seqüência de caracteres, como + ou + =..Pode diminuir o desempenho do programa, se a esses métodos são chamados com freqüência, como, por exemplo, quando os caracteres são adicionados como uma seqüência de um loop estreito.
A classe StringBuilder é um objeto mutável e, ao contrário de System. String, a maioria dos métodos StringBuilder que modificar uma instância dessa classe retorna uma referência a essa instância do mesma.Você pode inserir caracteres ou acrescentar texto a uma instância de StringBuilder e remover ou substituir caracteres na instância sem a necessidade de alocar uma nova instância e exclusão de instância original.
Como investigar um aviso
Clique duas vezes a mensagem na janela Error List para navegar até o O modo de exibição de detalhes de função de amostra dados de perfil.Localize as seções do programa que tornam o uso mais freqüente de concatenação de seqüência de caracteres.Use a classe StringBuilder para manipulações complexas de cadeia de caracteres, incluindo operações de concatenação de seqüência de caracteres freqüente.
Para obter mais informações sobre como trabalhar com seqüências de caracteres, o As operações de cadeia de caracteres seção de o capítulo 5 - melhorando o desempenho de código gerenciado na biblioteca Microsoft Patterns and Practices.