Remova a expressão lambda desnecessária (IDE0200)
Propriedade | Valor |
---|---|
ID da regra | IDE0200 |
Título | Remover a expressão lambda desnecessária |
Categoria | Estilo |
Subcategoria | Regras de idioma (preferências de bloco de código) |
Linguagens aplicáveis | C# 11+ |
Opções | csharp_style_prefer_method_group_conversion |
Visão geral
Essa regra sinaliza o uso de uma expressão lambda quando ela é desnecessária. Expressões lambda podem ser desnecessárias quando as seguintes são todas verdadeiras:
- A expressão inclui a invocação de um método.
- A expressão lambda tem o mesmo número e a mesma ordem de parâmetros que a invocação do método.
- A invocação do método não tem efeitos colaterais.
- A expressão lambda não é atribuída a um tipo não delegado.
- Se a invocação for um método genérico, os argumentos de tipo serão fornecidos.
- O tipo de retorno do método invocado pode ser convertido no tipo de retorno da expressão lambda.
- Há apenas um método aplicável no grupo de métodos.
Opções
As opções especificam o comportamento que você quer que a regra imponha. Para obter informações sobre como configurar as opções, consulte Formato da opção.
csharp_style_prefer_method_group_conversão
Propriedade | Valor | Descrição |
---|---|---|
Nome da Opção | csharp_style_prefer_method_group_conversão | |
Valores da opção | true |
Prefira a conversão de uma expressão lambda em um grupo de métodos. |
false |
Desabilita a regra. | |
Valor da opção padrão | true |
Exemplo
// Code with violations.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(n => IsEven(n));
// Fixed code.
bool IsEven(int x) => x % 2 == 0;
_ = new[] { 1, 2, 3 }.Where(IsEven);
Suprimir um aviso
Se você quiser suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar e, em seguida, reabilite a regra.
#pragma warning disable IDE0200
// The code that's violating the rule is on this line.
#pragma warning restore IDE0200
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.IDE0200.severity = none
Para desabilitar todas as regras de estilo de código, defina a severidade da categoria Style
como none
no arquivo de configuração.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, confira Como suprimir avisos de análise de código.