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 é:
Adicione uma nova enumeração que contém os membros novos e originais.
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