CA1505: Bakımı yapılamayan kodlardan kaçının

Özellik Değer
Kural Kimliği CA1505
Başlık Bakımı yapılamayan kodlardan kaçının
Kategori Bakım Kolaylığı
Düzeltme bozucu ya da bozmayan olabilir Kesintisiz
Varsayılan eşik 10
.NET 10'da varsayılan olarak etkin Hayır
Geçerli diller C# ve Visual Basic

Neden

Tür, yöntem, alan, özellik veya olay düşük bakım dizin değerine sahiptir.

Kural açıklaması

Kural, bir türün, yöntemin, alanın, özelliğin veya olayın bakım dizini 10'dan küçük olduğunda bir ihlal bildirir. Ancak eşiği yapılandırabilirsiniz.

Bakım dizini şu ölçümler kullanılarak hesaplanır: kod satırları, program hacmi ve döngüsel karmaşıklık. (Program birimi , koddaki işleç ve işlenen sayısına göre bir tür veya yöntemi anlama zorluğunun bir ölçüsüdür. Döngüsel karmaşıklık , türün veya yöntemin yapısal karmaşıklığının bir ölçüsüdür. Kod ölçümleri hakkında daha fazla bilgi için bkz. Yönetilen kodun karmaşıklığını ve sürdürülebilirliğini ölçme.

Düşük bakım dizini, bir türün veya yöntemin bakımının büyük olasılıkla zor olduğunu ve yeniden tasarlamaya uygun bir aday olduğunu gösterir.

İhlalleri düzeltme

Bu ihlali düzeltmek için türü veya yöntemi yeniden tasarlayın ve daha küçük ve daha odaklanmış türler veya yöntemlere bölmeye çalışın.

Uyarıların ne zaman bastırılması gerekiyor?

Tür veya yöntem bölünemediğinde veya büyük boyutuna rağmen korunabilir olarak kabul edildiğinde bu uyarıyı gizleyebilirsiniz.

Not

Aşağıdakilerin tümü geçerliyse bu kuraldan hatalı pozitif uyarılar görebilirsiniz:

  • Visual Studio 2022 sürüm 17.5 veya üzerini .NET SDK'nın daha eski bir sürümüyle ( .NET 6 veya önceki bir sürüm) kullanıyorsunuz.
  • .NET 6 SDK'sından çözümleyicileri veya çözümleyici paketlerinin Microsoft.CodeAnalysis.FxCopAnalyzers gibi eski bir sürümünü kullanıyorsunuz.

Hatalı pozitifler, C# derleyicisindeki büyük bir değişiklikten kaynaklanmaktadır. Hatalı pozitif uyarıların düzeltmesini içeren daha yeni bir çözümleyici kullanmayı düşünün. Microsoft.CodeAnalysis.NetAnalyzers sürüm 7.0.0-preview1.22464.1 veya daha yeni bir sürüme yükseltin veya .NET 7 SDK'sından çözümleyicileri kullanın.

Uyarıyı gizleme

Yalnızca tek bir ihlali engellemek istiyorsanız, kuralı devre dışı bırakmak ve sonra yeniden etkinleştirmek için kaynak dosyanıza ön işlemci yönergeleri ekleyin.

#pragma warning disable CA1505
// The code that's violating the rule is on this line.
#pragma warning restore CA1505

Bir dosya, klasör veya projenin kuralını devre dışı bırakmak için, yapılandırma dosyasındaki önem derecesini noneolarak ayarlayın.

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

Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.

Eşiği yapılandır

Bu kuralın tetikleneceği eşiği ve analiz edilecek sembol türlerini yapılandırabilirsiniz. İzin verilebilen simge türleri şunlardır:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. CodeMetricsConfig.txt adlı bir metin dosyası oluşturun.

  2. İstenen eşiği metin dosyasına aşağıdaki biçimde ekleyin:

    CA1505: 20
    

    Bu örnekte, bir türün, yöntemin, alanın, özelliğin veya olayın korunabilirlik indeksi 20'den küçük olduğunda tetiklenecek şekilde kural yapılandırılmıştır.

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

    Bu örnekte kural, bir yöntemin bakım endeksi 5'ten küçük olduğunda veya bir türün bakım endeksi 15'ten küçük olduğunda tetiklenecek şekilde yapılandırılmıştır. Bu yapılandırma dosyasıyla kural, bakım dizini varsayılan eşikten (10) küçük olan alanlara, özelliklere ve olaylara bayrak eklemeye devam eder.

  3. Proje dosyasında yapılandırma dosyasının derleme eylemini AdditionalFiles olarak işaretleyin. Örneğin:

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

Ayrıca bkz.