Bagikan melalui


CA1822: Tandai anggota sebagai statik

Properti Nilai
ID Aturan CA1822
Judul Tandai anggota sebagai statik
Golongan Performa
Perbaikan bersifat disruptif atau non-disruptif Tidak melanggar - Jika anggota tidak terlihat di luar rakitan, terlepas dari perubahan yang Anda buat.

Tidak melanggar - Jika Anda hanya mengubah anggota menjadi anggota instans dengan this kata kunci.

Melanggar - Jika Anda mengubah anggota dari anggota instans menjadi anggota statis dan terlihat di luar rakitan.
Diaktifkan secara default di .NET 8 Sebagai saran

Penyebab

Anggota yang tidak mengakses data instans tidak ditandai sebagai statis (Dibagikan di Visual Basic).

Deskripsi aturan

Anggota yang tidak mengakses data instans atau memanggil metode instans dapat ditandai sebagai statik (Dibagikan dalam Visual Basic). Setelah Anda menandai metode sebagai statik, kompilator akan memancarkan situs panggilan nonvirtual ke anggota ini. Memancarkan situs panggilan nonvirtual akan mencegah pemeriksaan pada waktu proses untuk setiap panggilan yang memastikan bahwa penunjuk objek saat ini bukan nol. Ini dapat mencapai perolehan performa yang terukur untuk kode sensitif performa. Dalam beberapa kasus, kegagalan untuk mengakses instans objek saat ini mewakili masalah kebenaran.

Cara memperbaiki pelanggaran

Tandai anggota sebagai statis (atau Dibagikan di Visual Basic) atau gunakan 'ini'/'Saya' di isi metode, jika sesuai.

Kapan harus menekan peringatan

Aman untuk menekan peringatan dari aturan ini untuk kode yang dikirim sebelumnya yang perbaikannya akan menjadi perubahan yang melanggar.

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

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

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

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Mengonfigurasi kode yang akan dianalisis

Gunakan opsi berikut untuk mengonfigurasi bagian mana dari codebase Anda yang akan menjalankan aturan ini.

Anda dapat mengonfigurasi opsi ini hanya untuk aturan ini, untuk semua aturan yang berlaku untuknya, atau untuk semua aturan dalam kategori ini (Performa) yang diterapkannya. Untuk informasi selengkapnya, lihat Opsi konfigurasi aturan kualitas kode.

Menyertakan permukaan API tertentu

Anda dapat mengonfigurasi bagian mana dari basis kode yang akan menjalankan aturan ini, berdasarkan aksesibilitasnya. Misalnya, untuk menentukan bahwa aturan hanya boleh dijalankan pada permukaan API non-publik, tambahkan pasangan kunci-nilai berikut ke file .editorconfig di proyek Anda:

dotnet_code_quality.CAXXXX.api_surface = private, internal