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 | CA1310 |
| Başlık | Doğruluk 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 parametresini ayarlamayan ve varsayılan olarak kültüre özgü dize karşılaştırmasını kullanan bir yöntem aşırı yüklemesini kullanır. Bu nedenle, davranışı geçerli kullanıcının yerel ayar ayarlarına göre değişir.
Kural açıklaması
Varsayılan olarak kültüre özgü bir dize karşılaştırması kullanan dize karşılaştırma yöntemi, kullanıcı amacına uymayan kasıtsız çalışma zamanı davranışlarına yol açabilir. Amacın doğruluğu ve netliği için parametresiyle StringComparison aşırı yüklemeyi kullanmanız önerilir.
Bu kural, varsayılan olarak kültüre özgü StringComparison değeri kullanan dize karşılaştırma yöntemlerine bayrak ekler. Daha fazla bilgi için bkz Geçerli kültürü kullanan dize karşılaştırmaları.
Not
Yöntem tarafından varsayılan olarak kullanılan dize karşılaştırmasına bakılmaksızın tüm dize karşılaştırma yöntemlerinin ihlallerini görmek istiyorsanız, daha net olması için lütfen CA1307: StringComparison belirtin öğesini kullanın.
İ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, String.Compare(str1, str2)'yi String.Compare(str1, str2, StringComparison.Ordinal) ile değiştirin.
Uyarıların ne zaman bastırılması gerekiyor?
Kitaplık veya uygulamanın yerelleştirilmesi amaçlanmadığında bu kuraldan gelen bir uyarıyı engellemek güvenlidir.
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 CA1310
// The code that's violating the rule is on this line.
#pragma warning restore CA1310
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.CA1310.severity = none
Daha fazla bilgi için bkz . Kod analizi uyarılarını gizleme.