Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En .NET 9, un cambio importante en la característica de params Span<T> lang crea ambigüedad con los operadores implícitos de StringValues. Este cambio da como resultado que el compilador produzca un error CS0121 cuando encuentre llamadas ambiguas al método.
Comportamiento anterior
Las API mencionadas en la sección API afectadas anteriormente no presentaban sobrecargas que fueran ambiguas con los operadores implícitos de StringValues. Como resultado, el compilador resolvería las sobrecargas sin problemas.
Nuevo comportamiento
El compilador produce un error CS0121 al encontrar estas sobrecargas ambiguas, lo que da como resultado el siguiente error:
CS0121: The call is ambiguous between the following methods or properties: 'Program.Join(string, params string[])' and 'Program.Join(string, params ReadOnlySpan<string>)'
Versión introducida
.NET 9
Tipo de cambio disruptivo
Este cambio es una modificación de compatibilidad de origen .
Motivo del cambio
StringValues tiene operadores implícitos para string y string[] que provocan conflictos con la característica de params Span<T> lang.
Acción recomendada
Especifique explícitamente el método al que quiere llamar mediante la conversión de los argumentos al tipo adecuado o aplique parámetros con nombre.
APIs afectadas
- 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>)