模糊的重载解析影响了 StringValues 的隐式操作符

在 .NET 9 中,params Span<T> lang 功能中的中断性变更 会与隐式运算符 StringValues产生歧义。 此更改会导致编译器在遇到不明确的方法调用时引发错误 CS0121

以前的行为

受影响的 API 部分中提到的 API 以前没有与 StringValues的隐式运算符产生歧义的重载。 因此,编译器将解决重载,而不会出现任何问题。

新行为

当遇到这些不明确的重载时,编译器会引发错误 CS0121,从而导致以下错误:

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

已引入的版本

.NET 9

中断性变更的类型

此更改是 源代码兼容性 更改。

更改原因

StringValues 具有 stringstring[] 的隐式运算符,这些运算符会导致与 params Span<T> lang 功能冲突。

通过将参数强制转换为适当的类型或应用命名参数,来明确指定要调用的方法。

受影响的 API