Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
CA1850: Prefira o método estático
| Property | valor |
|---|---|
| ID da regra | CA1850 |
| Título | Prefira o método estático HashData em vez do método ComputeHash |
| Categoria | Desempenho |
| A correção está quebrando ou não quebrando | Sem quebra |
| Habilitado por padrão no .NET 10 | Como sugestão |
Motivo
Uma instância de um tipo que deriva de HashAlgorithm é criada para chamar seu ComputeHash método, e esse tipo tem um método estático HashData .
Descrição da regra
Métodos estáticos HashData foram introduzidos no .NET 5 nos seguintes tipos:
Esses métodos ajudam a simplificar o código nos casos em que você deseja apenas hash alguns dados.
É mais eficiente usar esses métodos estáticos HashData do que criar e gerenciar uma HashAlgorithm instância para chamar ComputeHash.
Como corrigir violações
Em geral, você pode corrigir a regra alterando seu código para chamar HashData e remover o HashAlgorithm uso da instância.
public bool CheckHash(byte[] buffer)
{
using (var sha256 = SHA256.Create())
{
byte[] digest = sha256.ComputeHash(buffer);
return DoesHashExist(digest);
}
}
Public Function CheckHash(buffer As Byte()) As Boolean
Using sha256 As SHA256 = SHA256.Create()
Dim digest As Byte() = sha256.ComputeHash(buffer)
Return DoesHashExist(digest)
End Using
End Function
O código anterior pode ser alterado para chamar o método estático HashData(Byte[]) diretamente.
public bool CheckHash(byte[] buffer)
{
byte[] digest = SHA256.HashData(buffer);
return DoesHashExist(digest);
}
Public Function CheckHash(buffer As Byte()) As Boolean
Dim digest As Byte() = SHA256.HashData(buffer)
Return DoesHashExist(digest)
End Function
Quando suprimir avisos
É seguro suprimir uma advertência desta regra.
Suprimir um aviso
Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.
#pragma warning disable CA1850
// The code that's violating the rule is on this line.
#pragma warning restore CA1850
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade como none no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.CA1850.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.