Bagikan melalui


CA1855: Gunakan Rentang<T>. Clear() alih-alih Span<T>. Fill()

Properti Nilai
ID Aturan CA1855
Judul Gunakan Span<T>. Clear() alih-alih Span<T>. Fill()
Golongan Performa
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Diaktifkan secara default di .NET 8 Sebagai saran

Penyebab

Span<T>.Fill(T) dipanggil untuk mengisi elemen rentang dengan nilai default.

Deskripsi aturan

Lebih efisien untuk memanggil Span<T>.Clear() daripada memanggil Span<T>.Fill(T) untuk mengisi elemen rentang dengan nilai default.

Cara memperbaiki pelanggaran

Ganti panggilan ke Span<T>.Fill(T) dengan panggilan ke Span<T>.Clear().

Contoh

Cuplikan kode berikut menunjukkan pelanggaran CA1855:

void M(Span<byte> span)
{
    span.Fill(0);
}

Cuplikan kode berikut memperbaiki pelanggaran:

void M(Span<byte> span)
{
    span.Clear();
}

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 CA1855
// The code that's violating the rule is on this line.
#pragma warning restore CA1855

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

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

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.