CA1700: Não nomear os valores de enum 'Reservado'

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 é usado no momento, 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 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 aparecem em navegadores de objeto e de 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, como a adição não faz com que os valores dos membros para alterar originais.

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çam 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: Armazenamento de enum deve ser Int32

CA1008: Enums devem ter o valor zero

CA1027: Marcar enums com FlagsAttribute