Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Las operaciones de desplazamiento en matemáticas genéricas ahora tienen un comportamiento coherente en todos los tipos enteros integrados.
Comportamiento anterior
Anteriormente, el comportamiento al usar matemáticas genéricas para realizar un cambio en un T podría diferir en función del tipo. En algunos casos, enmascara adecuadamente la cantidad de desplazamiento por sizeof(T) - 1. Y en otros casos, no había enmascaramiento. Esto significaba que el "desplazamiento excesivo" (por ejemplo, cambiar un byte por 8) podría dar lugar a respuestas diferentes de las esperadas.
Nuevo comportamiento
Las implementaciones se actualizaron para enmascarar la cantidad de desplazamiento, según corresponda, para garantizar un comportamiento coherente en todos los tipos enteros integrados y con el comportamiento documentado por la interfaz de System.Numerics.IShiftOperators<TSelf,TOther,TResult>.
Versión introducida
.NET 10
Tipo de cambio importante
Este cambio es un cambio de comportamiento .
Motivo del cambio
El comportamiento difiere del comportamiento diseñado debido a una diferencia en el funcionamiento del enmascaramiento para tipos enteros pequeños en C#.
Acción recomendada
Actualice cualquier código que se base en el comportamiento incoherente anterior para asegurarse de que funciona con el nuevo comportamiento coherente.
APIs afectadas
operator <<operator >>-
operator >>>parabyte,char,sbyte,shortyushortcuando se usa a través de matemáticas genéricas, lo que requiere unTrestringido awhere T : IShiftOperators<T, int, T>o una interfaz similar.