Microsoft estendeu o conjunto de regras de análise de código de regras de diretrizes de Design

O conjunto de regras de regras de diretrizes de Design do Microsoft Extended expande as regras de diretriz de design básica para maximizar as questões de usabilidade e a sustentabilidade são relatadas. Ênfase adicional é colocado em diretrizes de nomenclatura. Você deve considerar incluindo esta regra definir se o seu projeto inclui o código da biblioteca ou se você deseja impor os mais altos padrões para escrever código que é fácil de manter.

As regras de diretriz de Design estendidos incluem todas as regras de diretriz de Design básico do Microsoft. As regras básicas de diretriz de Design incluem todas as regras do Microsoft mínimo recomendado. Para obter mais informações, consulte Conjunto de regras de análise de código de regras de diretrizes de Design Microsoft Basic e Microsoft mínimo recomendado de conjunto de regras de análise de código de regras

A tabela a seguir descreve todas as regras do conjunto de regras de regras de diretrizes de Design do Microsoft estendido.

Regra

Descrição

CA1020: Evitar a namespaces com alguns tipos

Certifique-se de que há uma organização lógica para cada um dos seus espaços para nomes e que há um motivo válido para a colocação de tipos em um namespace de modo disperso preenchido.

CA1021: Evite os parâmetros de saída

Tipos de passagem por referência (usando out ou ref) requer experiência com ponteiros, entender a diferença entre os tipos de valor e tipos de referência e tratamento métodos com vários valores de retorno. Além disso, a diferença entre o check-out e parâmetros ref não é amplamente sabido.

CA1040: Evite interfaces vazios

Interfaces definir membros que fornecem um contrato de uso ou comportamento. A funcionalidade descrita pela interface pode ser adotada por qualquer tipo, independentemente de onde o tipo aparece na hierarquia de herança. Um tipo implementa uma interface fornecendo implementações de membros da interface. Uma interface vazia não define quaisquer membros; Portanto, ele não define um contrato que pode ser implementado.

CA1045: Não passe os tipos por referência

Tipos de passagem por referência (usando out ou ref) requer experiência com ponteiros, entender a diferença entre os tipos de valor e tipos de referência e tratamento métodos com vários valores de retorno. Os arquitetos de biblioteca que projetar para o público em geral não devem esperar que os usuários trabalhando mestre com check-out ou parâmetros ref.

CA1062: Validar os argumentos de métodos públicos

Todos os argumentos de referência passados para métodos visíveis externamente devem ser verificados em relação a null.

CA1501: Evitar a herança excessiva

Um tipo é a mais de quatro níveis de profundidade na sua hierarquia de herança. Hierarquias de tipo aninhado profundamente podem ser difícil siga, entender e manter.

CA1504: Revise os nomes de campo enganosas

O nome de um campo de instância começa com "s_" ou o nome de um campo de estático (Shared no Visual Basic) começa com "m"(_).

CA1505: Evite código insatisfatória

Um tipo ou método tem um valor de índice de baixa manutenção. Um índice de baixa manutenção indica que um tipo ou método é difícil manter provavelmente seria um bom candidato para replanejamento.

CA1506: Evitar o acoplamento de classe excessiva

Esta regra mede o acoplamento contando o número de referências de tipo único que contém a um tipo ou método de classe.

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

Esta regra pressupõe que um membro de enumeração com 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.

CA1701: Palavras compostas de seqüência de recurso devem ser minúsculas corretamente

Cada palavra na seqüência de recurso é dividida em tokens baseados nas maiúsculas e minúsculas. Cada combinação de dois token contígua é verificada pela biblioteca do verificador ortográfico do Microsoft. Se reconhecido, a palavra produz uma violação da regra.

CA1702: Palavras compostas devem ser minúsculas corretamente

O nome de um identificador contém várias palavras e pelo menos uma das palavras que parece ser uma palavra composta que não é causada corretamente.

CA1703: Seqüências de recursos devem ser escritas corretamente

Uma seqüência de recurso contém uma ou mais palavras que não são reconhecidas pela biblioteca do verificador ortográfico do Microsoft.

CA1704: Identificadores devem ser escritos corretamente

O nome de um identificador visível externamente contém uma ou mais palavras que não são reconhecidas pela biblioteca do verificador ortográfico do Microsoft.

CA1707: Identificadores não devem conter sublinhados

Por convenção, os nomes de identificador não contêm o caractere de sublinhado (_). Esta regra verifica os namespaces, tipos, membros e parâmetros.

CA1709: Identificadores devem ser minúsculas corretamente

Por convenção, os nomes de parâmetro usam camel casing, enquanto o espaço para nome, tipo, e os nomes de membro Pascal casing.

CA1710: Identificadores devem ter o correto sufixo

Por convenção, os nomes de tipos que ampliam a determinados tipos de base ou que implementar determinadas interfaces ou tipos derivados desses tipos tem um sufixo que está associado com o tipo base ou interface.

CA1711: Identificadores não devem ter o sufixo incorreto

Por convenção, apenas os nomes dos tipos que ampliam a determinados tipos de base ou que implementar determinadas interfaces ou tipos derivados desses tipos, devem terminar com os sufixos específicos de reservado. Outros nomes de tipo não devem usar esses sufixos reservados.

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

Nomes de membros de enumeração não são prefixados com o nome do tipo, porque o tipo de informações são esperadas a serem fornecidos pelas ferramentas de desenvolvimento.

CA1713: Eventos não devem ter antes ou depois do prefixo

O nome de um evento começa com "Antes" ou "Depois". Para nomear os eventos relacionados que são gerados em uma seqüência específica, use o presente ou o indicativo do passado para indicar a posição relativa na seqüência de ações.

CA1714: Sinalizadores enums devem ter nomes plural

Uma enumeração pública tem o atributo FlagsAttribute e seu nome não termina em "s". Tipos marcados com FlagsAttribute têm nomes que estão no plural, porque o atributo indica que mais de um valor pode ser especificado.

CA1715: Identificadores devem ter o prefixo correto

O nome de uma interface visível externamente não inicia com um "I" maiúsculo. O nome de um parâmetro de tipo genérico em um tipo visível externamente ou método não inicia com "T" maiúsculo.

CA1717: Somente os enums FlagsAttribute devem ter nomes plural

Convenções de nomenclatura determinam que um nome no plural para uma enumeração indica o que mais de um valor da enumeração pode ser especificado ao mesmo tempo.

CA1719: Nomes de parâmetro não devem corresponder a nomes de membro

O nome do parâmetro deve comunicar o significado de um parâmetro e um nome de membro deve comunicar o significado de um membro. Seria um design raro onde elas eram os mesmos. Nomeando um parâmetro da mesma como seu nome de membro é não intuitivos e dificulta a biblioteca de usar.

CA1720: Identificadores não devem conter os nomes de tipo

O nome do parâmetro em um membro visível externamente contém um nome de tipo de dados ou o nome de um membro visível externamente contém um nome de tipo de dados específicos do idioma.

CA1721: Os nomes de propriedade não devem corresponder a métodos get

O nome de um membro público ou protegido começa com "Get" Caso contrário, corresponde ao nome de uma propriedade pública ou protegida. " Get" métodos e propriedades devem ter nomes de distinguir claramente sua função.

CA1722: Identificadores não devem ter o prefixo incorreto

Por convenção, somente determinados elementos de programação têm nomes que começam com um prefixo específico.

CA1724: Nomes de tipo não devem corresponder a Namespaces

Nomes de tipo não devem corresponder os nomes dos namespaces definido na.Biblioteca de classes do NET Framework. Violam essa regra pode reduzir a usabilidade da biblioteca.

CA1725: Nomes de parâmetro devem corresponder à declaração de base

Nomeação consistentes de parâmetros em uma hierarquia de substituição aumenta a usabilidade de substituições de método. Um nome de parâmetro em um método derivado que difere do nome na declaração de base pode causar confusão sobre se o método é uma substituição do método base ou uma nova sobrecarga do método.

CA1726: Termos de uso preferido

O nome de um identificador visível externamente inclui um termo para o qual um termo alternativo, preferencial existe. Como alternativa, o nome inclui o termo "Bandeira" ou "Sinalizadores".

CA2204: Literais devem ser escritos corretamente

Uma seqüência de caracteres literal no corpo do método contém uma ou mais palavras que não são reconhecidas pela biblioteca do verificador ortográfico do Microsoft.