CA1858: Gunakan StartsWith alih-alih IndexOf
Properti | Nilai |
---|---|
ID Aturan | CA1858 |
Judul | Gunakan StartsWith alih-alih IndexOf |
Golongan | Performa |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Penyebab
String.IndexOf dipanggil dan hasilnya dibandingkan dengan nol.
Deskripsi aturan
Lebih efisien dan lebih jelas untuk memanggil String.StartsWith daripada memanggil String.IndexOf dan membandingkan hasilnya dengan nol untuk menentukan apakah string dimulai dengan awalan tertentu.
IndexOf
mencari seluruh string, sementara StartsWith
hanya membandingkan di awal string.
Cara memperbaiki pelanggaran
Ganti panggilan ke String.IndexOf dengan panggilan ke String.StartsWith.
Contoh
Cuplikan kode berikut menunjukkan pelanggaran CA1858:
bool M(string s)
{
return s.IndexOf("abc") == 0;
}
Function M(s As String) As Boolean
Return s.IndexOf("abc") = 0
End Function
Cuplikan kode berikut memperbaiki pelanggaran:
bool M(string s)
{
return s.StartsWith("abc");
}
Function M(s As String) As Boolean
Return s.StartsWith("abc")
End Function
Kapan harus menekan peringatan
Aman untuk menekan peringatan ini jika performa tidak menjadi perhatian.
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 CA1858
// The code that's violating the rule is on this line.
#pragma warning restore CA1858
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1858.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.