Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Tulajdonság | Érték |
|---|---|
| Szabályazonosító | CA1834 |
| Cím | StringBuilder.Append(char) használata egy karakteres stringhez |
| Kategória | Teljesítmény |
| A javítás romboló vagy nem romboló | Nem törhető |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | Javaslatként |
| Alkalmazandó nyelvek | C# és Visual Basic |
Ok
Ez a szabály akkor aktiválódik, amikor egy egységhosszúságú karakterláncot ad át a Append metódusnak.
Szabály leírása
Ha egységhosszúságú sztringgel hívja a StringBuilder.Append, fontolja meg, hogy const string helyett const char használ, a teljesítmény javítása érdekében.
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. Példák:
1. példa
Egységhosszú szöveges literállal való StringBuilder.Append hívások:
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 ki az "StringBuilder.Append(char)" lehetőséget, ha alkalmazható.
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úságú osztálymezővel kapcsolatos StringBuilder.Append meghívásokconst string:
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 itt szereplőt unitString-t egy char-re cserélheti anélkül, hogy buildelési hibákat okozna.
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?
Figyelmen kívül hagyható ennek a szabálynak a megsértése, ha nem aggódik a teljesítmény javítása miatt a StringBuilder használata során.
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.