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 none
olarak 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
CodeMetricsConfig.txt adlı bir metin dosyası oluşturun.
İ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.
Proje dosyasında yapılandırma dosyasının derleme eylemini AdditionalFiles olarak işaretleyin. Örneğin:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>