Nejednoznačné rozlišení přetížení ovlivňující implicitní operátory StringValues

V .NET 9 zásadní změna funkce jazyka params Span<T> způsobuje nejednoznačnost s implicitními operátory StringValues. Výsledkem této změny je, že kompilátor vyvolá chybu CS0121, když dojde k nejednoznačným voláním metody.

Předchozí chování

Rozhraní API uvedená v ovlivněných rozhraních API dříve neměla nejednoznačné přetížení s implicitními operátory StringValues. V důsledku toho by kompilátor vyřešil přetížení bez jakýchkoli problémů.

Nové chování

Kompilátor vyvolá chybu CS0121 při výskytu těchto nejednoznačných přetížení, což vede k následující chybě:

CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'

Zavedená verze

.NET 9

Typ zásadní změny

Tato změna je změnou kompatibility zdroje .

Důvod změny

StringValues má implicitní operátory pro string a string[], které způsobují konflikty s funkcí jazyka params Span<T>.

Explicitně zadejte metodu, kterou chcete volat přetypováním argumentů na příslušný typ nebo použít pojmenované parametry.

Ovlivněná rozhraní API