Aracılığıyla paylaş


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ýný
Hataya neden olan veya bozulmayan düzeltme Hataya neden olmayan
Varsayılan eşik 10
.NET 8'de varsayılan olarak etkin Hayır

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.

Dekont

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 hataya neden olan bir değişiklik nedeniyledir. 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ırma

Bu kuralın tetiklendiği eşiği ve analiz için simge 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 kural, bir türün, yöntemin, alanın, özelliğin veya olayın bakım dizini 20'den küçük olduğunda tetiklenen şekilde yapılandırılır.

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

    Bu örnekte kural, bir yöntemin bakım dizini 5'ten küçük olduğunda veya bir türün bakım dizini 15'ten küçük olduğunda tetiklenen şekilde yapılandırılı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.