Condividi tramite


Utilizzo di StringComparison ordinale

Aggiornamento: novembre 2007

TypeName

UseOrdinalStringComparison

CheckId

CA1309

Categoria

Microsoft.Globalization

Breaking Change

Non sostanziale

Causa

Un'operazione di confronto tra stringhe di tipo non linguistico non imposta il parametro StringComparison su Ordinal o OrdinalIgnoreCase.

Descrizione della regola

Molte operazioni sulle stringhe, soprattutto i metodi Compare() e Equals(), forniscono ora un overload che accetta un valore dell'enumerazione StringComparision come parametro.

Quando si specifica StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase, il confronto tra stringhe sarà di tipo non linguistico. In altre parole le funzionalità specifiche del linguaggio naturale vengono escluse dalle decisioni sui confronti, le quali vengono basate su semplici confronti di byte senza considerare l'utilizzo di maiuscole e minuscole o le tabelle di equivalenza, i cui parametri dipendono dalle impostazioni cultura. Di conseguenza, l'impostazione esplicita del parametro su StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase consente spesso di snellire il codice, di aumentarne la correttezza e di renderlo più affidabile.

Correzione di violazioni

Per correggere una violazione di questa regola, impostare il metodo di confronto tra stringhe su un overload che accetta l'enumerazione StringComparison come parametro e specificare Ordinal o OrdinalIgnoreCase. Modificare ad esempio String.Compare(str1, str2) in String.Compare(str1, str2, StringComparison.Ordinal)

Esclusione di avvisi

È consigliabile non visualizzare un avviso di questa regola quando la libreria o l'applicazione è destinata a un pubblico locale limitato oppure quando è necessario utilizzare la semantica delle impostazioni cultura correnti.

Vedere anche

Riferimenti

Specificare StringComparison

Altre risorse

Avvisi di globalizzazione