Megosztás a következőn keresztül:


CA1858: A StartsWith használata IndexOf helyett

Tulajdonság Érték
Szabályazonosító CA1858
Cím A StartsWith használata IndexOf helyett
Kategória Teljesítmény
A javítás kompatibilitástörő vagy nem törik Nem törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Javaslatként

Ok

String.IndexOf a függvény meghívja, és eredményét nullával hasonlítja össze.

Szabály leírása

Hatékonyabb és egyértelműbb a hívás String.StartsWith , mint meghívni String.IndexOf és összehasonlítani az eredményt nullával annak megállapításához, hogy egy sztring egy adott előtaggal kezdődik-e.

IndexOf A teljes sztringben keres, míg StartsWith csak a sztring elején.

Szabálysértések kijavítása

Cserélje le a hívást a következő String.IndexOf hívásra String.StartsWith: .

Példa

A következő kódrészlet a CA1858 megsértését mutatja be:

bool M(string s)
{
    return s.IndexOf("abc") == 0;
}
Function M(s As String) As Boolean
    Return s.IndexOf("abc") = 0
End Function

A következő kódrészlet kijavítja a szabálysértést:

bool M(string s)
{
    return s.StartsWith("abc");
}
Function M(s As String) As Boolean
    Return s.StartsWith("abc")
End Function

Mikor kell letiltani a figyelmeztetéseket?

Ha a teljesítmény nem okoz problémát, nyugodtan el lehet tiltani ezt a figyelmeztetést.

Figyelmeztetés mellőzése

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.

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

Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.

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

További információ: Kódelemzési figyelmeztetések letiltása.