Dela via


Tvetydig överbelastningslösning som påverkar implicita StringValues-operatorer

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.

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