Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA1307 |
| Başlık | Daha anlaşılır olması için StringComparison belirtin |
| Kategori | Globalleştirme |
| Düzeltme bozucu ya da bozmayan olabilir | Kesintisiz |
| .NET 10'da varsayılan olarak etkin | Hayır |
| Geçerli diller | C# ve Visual Basic |
Neden
Dize karşılaştırma işlemi, StringComparison parametresi ayarlanmayan bir metot aşırı yüklemesi kullanır.
Kural açıklaması
Birçok dize karşılaştırma işlemi, bir numaralandırma değerini parametre olarak kabul StringComparison eden bir aşırı yükleme sağlar.
Parametre alan StringComparison bir aşırı yükleme ne zaman varsa, bu parametreyi içermeyen bir aşırı yükleme yerine kullanılmalıdır. Bu parametre açıkça ayarlandığında, kodunuz genellikle daha net ve bakımı kolay hale getirilir. Daha fazla bilgi için bkz. Dize karşılaştırmalarını açıkça belirtme.
Not
Bu kural, karşılaştırma yöntemi tarafından kullanılan varsayılan StringComparison değeri dikkate almaz. Bu nedenle, Ordinal dize karşılaştırma yöntemlerini varsayılan olarak kullanan ve bu modun varsayılan kullanımını hedefleyen kullanıcılar için potansiyel olarak gürültülü olabilir.
Yalnızca varsayılan olarak kültüre özgü dize karşılaştırması kullanan bilinen dize yöntemlerinin ihlallerini görmek istiyorsanız, bunun yerine CA1310 : StringComparison'ı belirtin.
İhlalleri düzeltme
Bu kuralın ihlalini düzeltmek için, string karşılaştırma yöntemlerini parametre olarak StringComparison numaralandırmasını kabul eden aşırı yüklemelerle değiştirin. Örneğin, str1.IndexOf(ch1)'yi str1.IndexOf(ch1, StringComparison.Ordinal) ile değiştirin.
Uyarıların ne zaman bastırılması gerekiyor?
Amacın netliği gerekli olmadığında bu kuraldan gelen bir uyarıyı bastırmak güvenlidir. Örneğin, test kodu veya yerelleştirilebilir olmayan kod gerekli olmayabilir.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.