Bagikan melalui


CA1850: Lebih suka metode statis HashData daripada ComputeHash

Properti Nilai
ID Aturan CA1850
Judul Lebih suka metode statis HashData daripada ComputeHash
Golongan Performa
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 8 Sebagai saran

Penyebab

Instans jenis yang berasal dari HashAlgorithm dibuat untuk memanggil metodenya ComputeHash , dan jenis tersebut memiliki metode statis HashData .

Deskripsi aturan

Metode statis HashData diperkenalkan dalam .NET 5 pada jenis berikut:

Metode ini membantu menyederhanakan kode dalam kasus di mana Anda hanya ingin hash beberapa data.

Lebih efisien menggunakan metode statis HashData ini daripada membuat dan mengelola HashAlgorithm instans untuk memanggil ComputeHash.

Cara memperbaiki pelanggaran

Secara umum, Anda dapat memperbaiki aturan dengan mengubah kode Anda untuk memanggil HashData dan menghapus penggunaan HashAlgorithm instans.

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

Kode sebelumnya dapat diubah untuk memanggil metode statis HashData(Byte[]) secara langsung.

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

Kapan harus menekan peringatan

Aman untuk menyembunyikan peringatan dari aturan ini.

Menyembunyikan peringatan

Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.

#pragma warning disable CA1850
// The code that's violating the rule is on this line.
#pragma warning restore CA1850

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.CA1850.severity = none

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Baca juga