Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Die .NET-Codeanalyseregel CA1831 ist standardmäßig ab .NET 5 aktiviert. Sie erzeugt eine Buildwarnung für Code, bei dem ein auf Range basierender Indexer für eine Zeichenfolge verwendet wird, aber keine Kopie vorgesehen war.
Änderungsbeschreibung
Ab .NET 5 enthält das .NET SDK .NET Source Code Analyzers. Einige dieser Regeln sind standardmäßig aktiviert, einschließlich CA1831. Wenn Ihr Projekt Code enthält, der gegen diese Regel verstößt und für die Behandlung von Warnungen als Fehler konfiguriert ist, kann diese Änderung ihren Build unterbrechen.
Regel CA1831 findet Fälle, in denen ein Range-basierter Indexer auf einem String verwendet wird, obwohl keine Kopie beabsichtigt war. Wenn der Range-basierte Indexer direkt für eine Zeichenfolge verwendet wird, um eine implizite Umwandlung zu erzeugen, wird eine unnötige Kopie des angeforderten Teils der Zeichenfolge erstellt. Beispiel:
ReadOnlySpan<char> slice = str[1..3];
CA1831 schlägt stattdessen vor, den Range-basierten Indexer für einen Bereich der Zeichenfolge zu verwenden. Beispiel:
ReadOnlySpan<char> slice = str.AsSpan()[1..3];
Eingeführte Version
5.0
Empfohlene Aktion
Um Ihren Code zu korrigieren und unnötige Zuordnungen zu vermeiden, rufen Sie AsSpan(String) oder AsMemory(String) auf, bevor Sie den auf Range basierten Indexer verwenden. Beispiel:
ReadOnlySpan<char> slice = str.AsSpan()[1..3];Wenn Sie ihren Code nicht ändern möchten, können Sie die Regel deaktivieren, indem Sie den Schweregrad auf
suggestionodernonefestlegen. Weitere Informationen finden Sie unter Konfigurieren von Codeanalyseregeln.Um die Codeanalyse vollständig zu deaktivieren, legen Sie `
EnableNETAnalyzers` auf `false` in Ihrer Projektdatei fest. Weitere Informationen finden Sie unter EnableNETAnalyzers.