Partilhar via


Avisos de uso

Avisos de uso suportam o uso correto da.NET Framework.

Nesta seção

Regra

Descrição

CA1801: Revise os parâmetros não utilizados

Uma assinatura do método inclui um parâmetro que não é usado no corpo do método.

CA1806: Não ignore os resultados do método

Um novo objeto é criado, mas nunca é usado; ou um método que cria e retorna uma nova seqüência de caracteres é chamado e a nova seqüência nunca é usada; ou um método COM ou P/Invoke retorna um código de erro ou o HRESULT que nunca é usado.

CA1816: Chama GC.SuppressFinalize corretamente

Um método que é uma implementação do Dispose não chama GC.SuppressFinalize; ou um método que não é uma implementação do Dispose chama GC.SuppressFinalize; ou um método chama GC.SuppressFinalize e passagens algo diferente desse (Me em Visual Basic).

CA2200: Relançar para preservar os detalhes de pilha

Uma exceção é relançada e a exceção é explicitamente especificada na instrução throw.Se uma exceção é re-thrown, especificando a exceção na instrução throw, a lista de chamadas de método entre o método que lançou a exceção original e o método atual é perdida.

CA2201: Não aumente os tipos de exceção reservada

Isso torna difícil detectar e depurar o erro original.

CA2202: Não dispor objetos várias vezes

Uma implementação do método contém caminhos de código que poderiam causar várias chamadas para System.IDisposable.Dispose ou um equivalente de Dispose (como um método Close () em alguns tipos) no mesmo objeto.

CA2204: Literais devem ser escritos corretamente

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

CA2205: Equivalentes do gerenciado de uso da API do Win32

Uma plataforma chamar método está definido e existe um método com a funcionalidade equivalente a.Biblioteca de classes.

CA2207: Inicializar o tipo de valor campos estáticos in-line

Um tipo de valor declara um construtor estático explícito.Para corrigir uma violação desta regra, inicializar todos os dados estáticos quando ela é declarada e remova o construtor estático.

CA2208: Instanciar exceções argumento corretamente

É feita uma chamada ao construtor padrão (sem parâmetros) de um tipo de exceção que é ou deriva de ArgumentException ou um argumento de seqüência de caracteres incorreto é passado para um construtor parametrizado de um tipo de exceção que é ou deriva de ArgumentException.

CA2211: Não constante campos não devem estar visíveis

Os campos estáticos que não são constantes nem são somente leitura não thread-safe.Acesso a tal campo deve ser cuidadosamente controlado e requer técnicas de programação avançadas para sincronizar o acesso ao objeto de classe.

CA2212: Não marque os componentes de serviço com WebMethod

Um método em um tipo que herda de System.EnterpriseServices.ServicedComponent é marcado com System.Web.Services.WebMethodAttribute.Como WebMethodAttribute e um método de ServicedComponent têm comportamento conflitante e requisitos para o fluxo de transações e contexto, o comportamento do método estarão incorreto em alguns cenários.

CA2213: Campos descartáveis devem ser descartados

Um tipo que implementa IDisposable declara os campos que são de tipos que também implementam IDisposable.O método Dispose do campo não é chamado pelo método Dispose do tipo declarativo.

CA2214: Não chamam métodos substituíveis em construtores

Quando um construtor chama um método virtual, é possível se o construtor para a instância que invoca o método não foi executado.

CA2215: O métodos Dispose devem chamar dispose de classe base

Se um tipo é herdada de um tipo descartável, ele deve chamar o método Dispose do tipo base de seu próprio método Dispose.

CA2216: Tipos descartáveis devem declarar o finalizador

Um tipo que implementa IDisposable e possui campos que sugerem o uso de recursos não gerenciados, não implementa um finalizador conforme descrito pela Object.Finalize.

CA2217: Não marque enums com FlagsAttribute

Uma enumeração visível externamente é marcada com FlagsAttribute e tem um ou mais valores que não são potências de dois ou uma combinação de outros valores definidos na enumeração.

CA2218: GetHashCode de substituição em substituição Equals

GetHashCode retorna um valor, com base na instância atual, que é adequada para os algoritmos de hash e estruturas de dados como, por exemplo, uma tabela de hash.Dois objetos que são do mesmo tipo e são iguais devem retornar o mesmo código de hash.

CA2219: Não geram exceções em cláusulas de exceção

Quando uma exceção é gerada em um finalmente ou cláusula de falhas, a nova exceção oculta a exceção de ativa.Quando uma exceção é gerada em uma cláusula de filtro, o tempo de execução silenciosamente captura a exceção.Isso torna difícil detectar e depurar o erro original.

CA2220: Os finalizadores devem chamar o finalizador da classe base

Finalização deve ser propagada por meio da hierarquia de herança.Para garantir isso, tipos devem chamar o método Finalize de classe base no seu próprio método Finalize.

CA2221: Os finalizadores devem ser protegidos

Os finalizadores devem usar o modificador de acesso da família.

CA2222: Não diminuir a visibilidade de membro herdado

Você não deve alterar o modificador de acesso para membros herdados.A alteração de um membro herdado para private não impede que chamadores acessem a implementação de classe base do método.

CA2223: Os membros devem diferir por tipo de retorno de mais de

Embora o common language runtime permite o uso de tipos de retorno para diferenciar entre membros idênticos, esse recurso não está no Common Language Specification, nem é um recurso comum do.NET linguagens de programação.

CA2224: É igual a substituição na sobrecarga de operador equals

Um tipo público implementa o operador de igualdade, mas não substitui Object. Equals.

CA2225: Sobrecargas operador nomeou alternativas

Uma sobrecarga de operador foi detectada e o método alternativo nomeado esperado não foi encontrado.O membro alternativo nomeado fornece acesso para a mesma funcionalidade que o operador e é fornecido para os desenvolvedores que programam em idiomas que não oferecem suporte a operadores sobrecarregados.

CA2226: Os operadores devem ter a sobrecargas simétricas

Um tipo implementa a igualdade ou desigualdade e não implementa o operador oposto.

CA2227: Propriedades da coleção devem ser somente leitura

Uma propriedade de coleção gravável permite que um usuário substituir a coleção com uma coleção diferente.Uma propriedade somente leitura pára a coleção seja substituída, mas ainda permite que os membros individuais sejam definidas.

CA2228: Não são fornecidos recursos realizar formatos

Os arquivos de recursos que foram criados usando versões de pré-lançamento do.NET Framework pode não ser utilizável por versões compatíveis com o.NET Framework.

CA2229: Construtores de serialização de implementar

Para corrigir uma violação desta regra, implemente o construtor de serialização.Para uma classe selada, tornar o construtor particular; Caso contrário, tornam protegido.

CA2230: Use params para argumentos de variáveis

Um tipo de público ou protegido contém um método público ou protegido que usa a convenção de chamada VarArgs em vez da palavra-chave params.

CA2231: Sobrecarga de operador é igual a sobre a anulação de ValueType.Equals

Um tipo de valor substitui Object. Equals, mas não implementa o operador de igualdade.

CA2232: Pontos de entrada marca Windows Forms com STAThread

STAThreadAttribute indica que o COM o modelo para o aplicativo de threading é um single-threaded apartment.Este atributo deve estar presente no ponto de entrada de qualquer aplicativo que usa o Windows Forms; Se ele for omitido, os componentes do Windows podem não funcionar corretamente.

CA2233: As operações não devem estouro

Operações aritméticas não devem ser executadas sem primeiro validar os operandos, para certificar-se de que o resultado da operação não está fora do intervalo de valores possíveis para os tipos de dados envolvidos.

CA2234: Objetos System. URI de passagem em vez de seqüências de caracteres

É feita uma chamada para um método que possui um parâmetro de seqüência de caracteres cujo nome contém "uri", "URI", "urn", "URN", "url" ou "URL".O tipo declarativo do método contém uma sobrecarga de método correspondente que possui um parâmetro System. URI.

CA2235: Marcar todos os campos não serializáveis

Um campo de instância de um tipo que não é serializável está declarado em um tipo que pode ser serializado.

CA2236: Chamar os métodos de classe base nos tipos de ISerializable

Para corrigir uma violação desta regra, chama o construtor de método ou a serialização de GetObjectData do tipo base do construtor ou método correspondente do tipo derivado.

CA2237: Os tipos ISerializable da marca com o SerializableAttribute

Sejam reconhecidos pelo common language runtime como serializável, os tipos devem ser marcados com o atributo SerializableAttribute mesmo se o tipo usa uma rotina de serialização personalizada por meio da implementação da interface ISerializable.

CA2238: Implementar métodos de serialização corretamente

Um método que manipula um evento de serialização não tem a assinatura correta, retornar o tipo ou a visibilidade.

CA2239: Fornecer métodos para os campos opcionais de desserialização

Um tipo tem um campo que está marcado com o atributo OptionalFieldAttribute e o tipo não fornece métodos de manipulação de eventos de desserialização.

CA2240: ISerializable de implementar corretamente

Para corrigir uma violação desta regra, faça o método GetObjectData visíveis e substituível e certifique-se de que todos os campos de instância são incluídos no processo de serialização ou explicitamente marcados com o atributo NonSerializedAttribute.

CA2241: Fornecer argumentos corretos para métodos de formatação.

O argumento de formato passado para System.String.Format não contém um item de formato que corresponde ao argumento de cada objeto, ou vice-versa.

CA2242: Testar NaN corretamente

Essa expressão testa um valor em relação a Single.Nan ou Double.Nan.Use Single.IsNan(Single) ou Double.IsNan(Double) para testar o valor.

CA2243: Literais de seqüência de atributo devem analisar corretamente

Parâmetro literal de seqüência de caracteres de um atributo não analisa corretamente para uma URL, um GUID ou uma versão.