Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na platformie .NET 9 zmiana powodująca niezgodność funkcji języka params Span<T> tworzy niejednoznaczność z niejawnymi operatorami StringValues. Ta zmiana powoduje, że kompilator zgłasza błąd CS0121, gdy napotka niejednoznaczne wywołania metody.
Poprzednie zachowanie
Wspomniane interfejsy API w sekcji Affected APIs wcześniej nie posiadały przeciążeń, które byłyby niejednoznaczne z niejawnymi operatorami StringValues. W rezultacie kompilator rozwiąże przeciążenia bez żadnych problemów.
Nowe zachowanie
Kompilator zgłasza błąd CS0121 podczas napotkania tych niejednoznacznych przeciążeń, co powoduje następujący błąd:
CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'
Wersja wprowadzona
.NET 9
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą zgodności ze źródłem .
Przyczyna zmiany
StringValues ma niejawne operatory dla string i string[], które powodują konflikty z funkcją params Span<T> lang.
Zalecana akcja
Jawnie określ metodę, którą chcesz wywołać, rzutując argumenty do odpowiedniego typu lub stosując nazwane parametry.
Interfejsy API, których dotyczy problem
- 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>)