Bagikan melalui


CA1505: Hindari kode yang tidak dapat dipelihara

Properti Nilai
ID Aturan CA1505
Judul Hindari kode yang tidak dapat dipertahankan
Golongan Kemampu
Perbaikan bersifat disruptif atau non-disruptif Non-disruptif
Ambang default 10
Diaktifkan secara default di .NET 8 Tidak

Penyebab

Jenis, metode, bidang, properti, atau peristiwa memiliki nilai indeks keberlanjutan rendah.

Deskripsi aturan

Aturan melaporkan pelanggaran ketika indeks keberlanjutan jenis, metode, bidang, properti, atau peristiwa kurang dari 10. Namun, Anda dapat mengonfigurasi ambang batas.

Indeks ketahanan dihitung dengan menggunakan metrik berikut: baris kode, volume program, dan kompleksitas cyclomatic. (Volume program adalah ukuran kesulitan pemahaman jenis atau metode yang didasarkan pada jumlah operator dan operand dalam kode. Kompleksitas siklomatik adalah ukuran kompleksitas struktural jenis atau metode. Anda dapat mempelajari selengkapnya tentang metrik kode di Mengukur kompleksitas dan keberlanjutan kode terkelola.

Indeks pemeliharaan rendah menunjukkan bahwa jenis atau metode mungkin sulit dipertahankan dan akan menjadi kandidat yang baik untuk mendesain ulang.

Cara memperbaiki pelanggaran

Untuk memperbaiki pelanggaran ini, desain ulang jenis atau metode dan coba bagi menjadi jenis atau metode yang lebih kecil dan lebih terfokus.

Kapan harus menekan peringatan

Anda dapat menekan peringatan ini ketika jenis atau metode tidak dapat dipisahkan atau dianggap dapat dipertahankan meskipun ukurannya besar.

Catatan

Anda mungkin melihat peringatan positif palsu dari aturan ini jika semua hal berikut ini berlaku:

  • Anda menggunakan Visual Studio 2022 versi 17.5 atau yang lebih baru dengan versi .NET SDK yang lebih lama, yaitu, .NET 6 atau yang lebih lama.
  • Anda menggunakan penganalisis dari .NET 6 SDK atau versi paket penganalisis yang lebih lama, seperti Microsoft.CodeAnalysis.FxCopAnalyzers.

Positif palsu disebabkan oleh perubahan yang melanggar dalam pengkompilasi C#. Pertimbangkan untuk menggunakan penganalisis yang lebih baru yang berisi perbaikan untuk peringatan positif palsu. Tingkatkan ke Microsoft.CodeAnalysis.NetAnalyzers versi 7.0.0-preview1.22464.1 atau yang lebih baru atau gunakan penganalisis dari .NET 7 SDK.

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

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

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

Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.

Mengonfigurasi ambang batas

Anda dapat mengonfigurasi ambang di mana aturan ini diaktifkan dan jenis simbol untuk dianalisis. Jenis simbol yang diizinkan adalah:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Buat file teks bernama CodeMetricsConfig.txt.

  2. Tambahkan ambang yang diinginkan ke file teks dalam format berikut:

    CA1505: 20
    

    Dalam contoh ini, aturan dikonfigurasi untuk diaktifkan ketika indeks keberlanjutan jenis, metode, bidang, properti, atau peristiwa kurang dari 20.

    CA1505(Method): 5
    CA1505(Type): 15
    

    Dalam contoh ini, aturan dikonfigurasi untuk diaktifkan ketika indeks keberlanjutan metode kurang dari 5 atau indeks ketahanan jenis kurang dari 15. Dengan file konfigurasi ini, aturan akan terus menandai bidang, properti, dan peristiwa yang indeks pemeliharaannya kurang dari ambang default (10).

  3. Dalam file proyek, tandai tindakan build file konfigurasi sebagai AdditionalFiles. Contohnya:

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

Baca juga