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. AsSpan
Substring
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:
- Cserélje le a sztringösszefűzést a következő hívásra:
string.Concat
- Cserélje le a hívásokat a
Substring
gombraAsSpan
.
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 Substring
AsSpan
, ha a kinyert részszűrést csak span-based egyenértékű metódusnak adjuk át.