Partilhar via


CA1700: Não nomear valores enum "Reservada"

TypeName

DoNotNameEnumValuesReserved

CheckId

CA1700

<strong>Categoria</strong>

Microsoft.Naming

Alteração significativa

Quebrando

Causa

O nome de um membro de enumeração contém a palavra "reservada".

Descrição da regra

Esta regra pressupõe que um membro de enumeração tem um nome que contenha "reservado" não está sendo usado, mas é um espaço reservado para ser renomeado ou removido em uma versão futura.Renomear ou remover um membro é uma alteração significativa.Você não deve esperar que os usuários para ignorar um membro, porque seu nome contém "reservados", nem você pode confiar em que os usuários leiam ou obedeçam a documentação.Além disso, como membros reservados são exibidos em navegadores de objeto e ambientes de desenvolvimento integrado inteligentes, eles podem causar confusão sobre quais membros estiverem sendo realmente utilizados.

Em vez de usar o membro reservado, adicione um novo membro à enumeração na versão futura.Na maioria dos casos a adição do novo membro não é uma alteração significativa, desde que a adição não faz com que os valores dos membros do originais para alterar.

Em um número limitado de casos a adição de um membro é uma alteração significativa, mesmo quando os membros originais mantêm seus valores originais.Basicamente, o novo membro não pode ser retornado de caminhos de código existente sem quebrar os chamadores que usam um switch (Select na Visual Basic) a instrução no valor de retorno que abrange a lista de membros de todo e que lançar uma exceção no caso padrão.Uma preocupação secundária é que o código de cliente pode não lidar com a alteração no comportamento dos métodos de reflexão como Enum.IsDefined.Da mesma forma, se o novo membro deve ser retornado de métodos existentes ou incompatibilidade de um aplicativo conhecido ocorre devido ao uso da reflexão ruim, a única solução não-separável é:

  1. Adicione uma nova enumeração que contém os membros novos e originais.

  2. Marcar a enumeração original com o System.ObsoleteAttribute atributo.

Siga o mesmo procedimento para qualquer visíveis externamente tipos ou membros que expõem a enumeração original.

Como corrigir violações

Para corrigir uma violação desta regra, remover ou renomear o membro.

Quando suprimir avisos

É seguro eliminar um aviso essa regra para um membro que está sendo usado ou bibliotecas que têm previamente fornecidos.

Regras relacionadas

CA2217: Não marque enums com FlagsAttribute

CA1712: Não os valores de enum com nome de tipo de prefixo

CA1028: O armazenamento de Enum deve ser Int32

CA1008: Enums devem ter o valor zero

CA1027: Marcar enums com FlagsAttribute