Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
| Eigenschap | Waarde |
|---|---|
| Regel-id | CA1830 |
| Titel | Geef de voorkeur aan sterk getypte Append- en Insert-methodeoverloads in StringBuilder |
| Categorie | Prestaties |
| Fix kan brekend of niet-brekend zijn | Niet-brekend |
| Standaard ingeschakeld in .NET 10 | Als suggestie |
| Toepasselijke talen | C# en Visual Basic |
Oorzaak
Een StringBuilderAppend of Insert methode werd aangeroepen met een argument dat het resultaat was van het aanroepen ToString van een type waarvoor de Append of Insert methode een toegewezen overbelasting heeft.
Beschrijving van regel
Append en Insert bieden overbelastingopties voor meerdere typen naast String. Indien mogelijk, geeft u de voorkeur aan de sterk getypte overbelastingen boven het gebruik van ToString() en de op tekenreeks gebaseerde overbelasting.
Hoe schendingen op te lossen
Verwijder het onnodige ToString() vanuit de aanroep.
using System.Text;
class C
{
int _value;
// Violation
public void Log(StringBuilder destination)
{
destination.Append("Value: ").Append(_value.ToString()).AppendLine();
}
// Fixed
public void Log(StringBuilder destination)
{
destination.Append("Value: ").Append(_value).AppendLine();
}
}
Wanneer waarschuwingen onderdrukken
Het is veilig om een schending van deze regel te onderdrukken als u zich geen zorgen maakt over de prestatie-impact van onnodige stringallocaties.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA1830
// The code that's violating the rule is on this line.
#pragma warning restore CA1830
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA1830.severity = none
Zie voor meer informatie Hoe codeanalysewaarschuwingen te onderdrukken.