CA1834: StringBuilder.Append(char) használata egy karakteres sztringekhez
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1834 |
Cím | StringBuilder.Append(char) használata egy karakteres sztringekhez |
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 akkor aktiválódik, ha egy egységhosszúságú sztringet ad át a Append metódusnak.
Szabály leírása
Ha egységhosszúságú sztringgel hív, StringBuilder.Append
fontolja meg const char
az egységhossz const string
helyett a teljesítmény növelését.
Szabálysértések kijavítása
A szabálysértés manuálisan is kijavítható, vagy bizonyos esetekben a Gyorsműveletek segítségével kijavíthatja a kódot a Visual Studióban. Examples:
1. példa
Egységhosszú sztringkonstans StringBuilder.Append
meghívása:
using System;
using System.Text;
namespace TestNamespace
{
class TestClass
{
private void TestMethod()
{
StringBuilder sb = new StringBuilder();
sb.Append("a");
}
}
}
Tipp.
Ehhez a szabályhoz kódjavítás érhető el a Visual Studióban. A használathoz helyezze a kurzort a szabálysértésre, és nyomja le a Ctrl+ billentyűt. (pont). A megjelenő lehetőségek listájából válassza a "StringBuilder.Append(char)" lehetőséget.
A Visual Studio által alkalmazott javítás:
using System;
using System.Text;
namespace TestNamespace
{
class TestClass
{
private void TestMethod()
{
StringBuilder sb = new StringBuilder();
sb.Append('a');
}
}
}
Bizonyos esetekben például egy egységhosszúságú const string
osztálymező használatakor a Visual Studio nem javasol kódjavítást (de az elemző továbbra is aktiválódik). Ezek a példányok manuális javítást igényelnek.
2. példa
Egységhosszú const string
osztálymezővel kapcsolatos meghívásokStringBuilder.Append
:
using System;
using System.Text;
namespace TestNamespace
{
public class Program
{
public const string unitString = "a";
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append(unitString);
}
}
}
A gondos elemzés után az alábbiakat úgy módosíthatja, unitString
char
hogy ne okozzon buildelési hibákat.
using System;
using System.Text;
namespace TestNamespace
{
public class Program
{
public const char unitString = 'a';
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
sb.Append(unitString);
}
}
}
Mikor kell letiltani a figyelmeztetéseket?
Nyugodtan el lehet tiltani a szabály megsértését, ha nem aggódik a teljesítmény javítása miatt a használat során StringBuilder
.
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 CA1834
// The code that's violating the rule is on this line.
#pragma warning restore CA1834
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.CA1834.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Kapcsolódó információk
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: