Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
CA1850: Lebih suka metode statis
| 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 10 | 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.