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


CA1845: Span-alapú sztring használata. Összefűzés"

Tulajdonság Érték
Szabályazonosító CA1845
Cím Használjon span-alapú sztringet. Összefűzés"
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

Ez a szabály megkeresi a hívásokat tartalmazó Substring sztringösszefűzési kifejezéseket, és azt javasolja, hogy cserélje le SubstringAsSpan és használja a span-alapú túlterhelést String.Concat.

Szabály leírása

A hívás Substring létrehozza a kinyert részstring másolatát. AsSpanSubstring A túlterheltség string.Concat helyett és a túlterhelés meghívásával kiküszöbölheti a szükségtelen sztring-lefoglalást.

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

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

  1. Cserélje le a sztringösszefűzést a következő hívásra:string.Concat
  2. Cserélje le a hívásokat a Substring gombra AsSpan.

Az alábbi kódrészlet példákat mutat be a szabálysértésekre és azok kijavítására.

using System;

class Example
{
    public void Method()
    {
        string text = "fwobz the fwutzle";

        //  Violation: allocations by Substring are wasteful.
        string s1 = text.Substring(10) + "---" + text.Substring(0, 5);

        //  Fixed: using AsSpan avoids allocations of temporary strings.
        string s2 = string.Concat(text.AsSpan(10), "---", text.AsSpan(0, 5));
    }
}

Mikor kell letiltani a figyelmeztetéseket?

Ne tiltsa le a szabály figyelmeztetéseit. Nincs ok az átvételre SubstringAsSpan , ha a kinyert részszűrést csak span-based egyenértékű metódusnak adjuk át.

Kapcsolódó információk