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 9 | 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.