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.