Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In .NET 9 entsteht durch eine einschneidende Änderung des Features params Span<T> lang eine Mehrdeutigkeit mit den impliziten Operatoren von StringValues. Diese Änderung führt dazu, dass der Compiler Fehler CS0121 auslöst, wenn es auf mehrdeutige Methodenaufrufe stößt.
Vorheriges Verhalten
Die in den betroffenen APIs Abschnitt erwähnten APIs hatten zuvor keine Überladungen mehrdeutig mit den impliziten Operatoren von StringValues. Daher würde der Compiler die Überladungen ohne Probleme beheben.
Neues Verhalten
Der Compiler löst fehler CS0121 beim Auftreten dieser mehrdeutigen Überladungen aus, was zu folgendem Fehler führt:
CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'
Version eingeführt
.NET 9
Art der kompatibilitätsbrechenden Änderung
Diese Änderung ist eine Änderung der Quellkompatibilität.
Grund für Änderung
StringValues verfügt über implizite Operatoren für string und string[], die Konflikte mit dem feature params Span<T> langverursachen.
Empfohlene Aktion
Geben Sie explizit die Methode an, die Sie aufrufen möchten, indem Sie die Argumente in den entsprechenden Typ umwandeln oder benannte Parameter anwenden.
Betroffene APIs
- System.String.Concat(ReadOnlySpan<String>)
- System.String.Join(Char, ReadOnlySpan<String>)
- System.String.Join(String, ReadOnlySpan<String>)
- System.IO.Path.Combine(ReadOnlySpan<String>)
- System.IO.Path.Join(ReadOnlySpan<String>)
- System.Text.StringBuilder.AppendJoin(String, ReadOnlySpan<String>)
- System.Text.StringBuilder.AppendJoin(Char, ReadOnlySpan<Object>)