Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I .NET 9 skapar en icke-bakåtkompatibel ändring i funktionen params Span<T> lang tvetydighet med implicita operatorer för StringValues. Den här ändringen resulterar i att kompilatorn utlöser fel CS0121 när det uppstår tvetydiga metodanrop.
Tidigare beteende
API:erna som nämns i avsnittet berörda API:er hade tidigare inte några överlagringar som var tvetydiga med implicita operatorer för StringValues. Därför skulle kompilatorn lösa överlagringarna utan problem.
Nytt beteende
Kompilatorn genererar fel CS0121 vid dessa tvetydiga överlagringar, vilket resulterar i följande fel:
CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'
Version införd
.NET 9
Typ av icke-bakåtkompatibel ändring
Den här ändringen är en källkompatibilitet ändring.
Orsak till ändring
              StringValues har implicita operatorer för string och string[] som orsakar konflikter med params Span<T> lang-funktionen.
Rekommenderad åtgärd
Ange uttryckligen den metod som du tänker anropa genom att konvertera argumenten till lämplig typ eller tillämpa namngivna parametrar.
Berörda API:er
- 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>)