Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Property | Valor |
|---|---|
| ID da regra | IDE0390, IDE0391 |
| Título | Tornar o método síncrono |
| Categoria | Style |
| Subcategoria | Regras de código desnecessárias (preferências do modificador) |
| Idiomas aplicáveis | C# |
| Opções | None |
Visão geral
Essas regras sinalizam async métodos que não contêm expressões await . Para melhor desempenho, remova o modificador async e ajuste o tipo de retorno, pois um método async que nunca awaitretorna nada é executado de forma síncrona, mas com a sobrecarga da máquina de estados assíncrona.
As duas regras visam cenários diferentes:
-
IDE0390: relata
asyncmétodos, funções locais e expressões lambda que não são implementações ou substituições de interface. -
IDE0391: relata
asyncmétodos que implementam um membro de interface ou substituem um método de classe base.
Para evitar quebrar a capacidade dos chamadores de await acessar o método por meio da interface, tenha cuidado ao aplicar a correção a implementações ou substituições de interfaces. A remoção async pode ter implicações comportamentais diferentes nesses casos.
Example
// Code with violations.
// IDE0390: Regular method with no 'await'.
public async Task<int> GetValueAsync()
{
return 42;
}
// IDE0391: Override method with no 'await'.
public override async Task<string> GetNameAsync()
{
return "example";
}
// Fixed code.
// Remove 'async' and return the value directly.
public Task<int> GetValueAsync()
{
return Task.FromResult(42);
}
// Remove 'async' and return the value directly.
public override Task<string> GetNameAsync()
{
return Task.FromResult("example");
}
Suprimir um aviso
Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desabilitar a regra e, em seguida, habilitá-la novamente.
#pragma warning disable IDE0390
// The code that's violating the rule is on this line.
#pragma warning restore IDE0390
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.
[*.cs]
dotnet_diagnostic.IDE0390.severity = none
dotnet_diagnostic.IDE0391.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]
dotnet_analyzer_diagnostic.category-Style.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.