Compartilhar 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 ignorar 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 HRESULT nunca é usado.

CA1816: Chame GC.SuppressFinalize corretamente

Um método que é uma implementação de Dispose não chama GC.SuppressFinalize; ou um método que não é uma implementação de Dispose chama GC.SuppressFinalize; ou um método chama GC.SuppressFinalize e passagens algo diferente neste (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 original que lançou a exceção 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 do método contém uma ou mais palavras que não são reconhecidas pela biblioteca do verificador ortográfico do Microsoft.

CA2205: Use o gerenciado equivalentes da API do Win32

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

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 remover o construtor estático.

CA2208: Criar uma instância de exceções do 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: Os campos não constante não deverá ser 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 avançadas de programação para sincronizar o acesso ao objeto de classe.

CA2212: Não marca componentes atendidos 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 de fluxo de contexto e a transação, o comportamento do método estarão incorreto em alguns cenários.

CA2213: Campos descartáveis devem ser descartados.

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

CA2214: Não chame os métodos overridable construtores

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

CA2215: Métodos Dispose devem chamar dispose de classe base

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

CA2216: Tipos descartáveis devem declarar o finalizador

Um tipo que implementa o System. IDisposable e possui campos que sugerem o uso de recursos não gerenciados, não implementar um finalizador, conforme descrito pelo 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: Substituir GetHashCode na 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 aumente exceções em cláusulas de exceção

Quando uma exceção em um finalmente ou cláusula de falhas, new exception 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 de operador nomeou alternativas

Uma sobrecarga de operador foi detectada e o método alternativo nomeado esperado não foi encontrado. O membro nomeado de alternativo 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 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 para realizar recurso 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: Implementar os construtores de serialização

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 equals em substituição a ValueType.Equals

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

CA2232: Pontos de entrada da 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 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: Passar objetos de System. URI 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 é declarado em um tipo que pode ser serializado.

CA2236: Chamar métodos da 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: Tipos de ISerializable de 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 o evento de serialização não tem a assinatura correta, retornar o tipo ou a visibilidade.

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

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: Implementa ISerializable 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 o 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 caracteres de atributo devem analisar corretamente

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

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Adicionado resumos ausentes para CA1801, CA1806, avisos de CA1816

Comentários do cliente.