DA0001: Use StringBuilder para concatenações

Identificação da regra

DA0001

<strong>Categoria</strong>

.Uso do NET Framework

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 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 para a seqüência 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 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 dados de perfil de amostragem. 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 de complexos de seqüência de caracteres, incluindo operações de concatenação de seqüência freqüente.

Para obter mais informações sobre como trabalhar com seqüências de caracteres, o Seqüência de operações seção de o capítulo 5 - melhorando o desempenho de código gerenciado na biblioteca Microsoft Patterns and Practices.