Share via


CA1308: Normalisera strängar till versaler

Property Värde
Regel-ID CA1308
Rubrik Normalisera strängar till versaler
Kategori Globalisering
Korrigeringen är icke-bakåtkompatibel Icke-icke-bryta
Aktiverad som standard i .NET 8 Nej

Orsak

En åtgärd normaliserar en sträng till gemener.

Regelbeskrivning

Strängar bör normaliseras till versaler. En liten grupp tecken, när de konverteras till gemener, kan inte göra en tur och retur-resa. Om du vill göra en tur och retur-resa innebär det att konvertera tecknen från ett språk till ett annat språk som representerar teckendata på olika sätt och sedan att korrekt hämta de ursprungliga tecknen från de konverterade tecknen.

Så här åtgärdar du överträdelser

Ändra åtgärder som konverterar strängar till gemener så att strängarna konverteras till versaler i stället. Ändra String.ToLower(CultureInfo.InvariantCulture) till exempel till String.ToUpper(CultureInfo.InvariantCulture).

När du ska ignorera varningar

Det är säkert att ignorera en varning när du inte fattar säkerhetsbeslut baserat på resultatet av normaliseringen (till exempel när du visar resultatet i användargränssnittet).

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA1308
// The code that's violating the rule is on this line.
#pragma warning restore CA1308

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA1308.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

Se även