Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As operações de deslocamento em matemática genérica agora têm um comportamento consistente em todos os tipos de inteiros incorporados.
Comportamento anterior
Anteriormente, o comportamento ao utilizar matemática genérica para realizar um deslocamento em um T poderia diferir dependendo do tipo. Em alguns casos, mascarou adequadamente o valor do turno por sizeof(T) - 1. E, em outros casos, não havia máscara. Isso significava que um "overshifting" (como deslocar um byte por 8) poderia resultar em respostas diferentes do que eram esperadas.
Novo comportamento
As implementações foram atualizadas para mascarar a quantidade de deslocamento, conforme apropriado, para garantir um comportamento consistente em todos os tipos inteiros internos e com o comportamento documentado pela interface System.Numerics.IShiftOperators<TSelf,TOther,TResult>.
Versão introduzida
.NET 10
Tipo de mudança de ruptura
Esta mudança é uma alteração comportamental.
Motivo da mudança
O comportamento diferiu do comportamento projetado devido a uma diferença em como o mascaramento funciona para tipos inteiros pequenos em C#.
Ação recomendada
Atualize qualquer código que dependa do comportamento inconsistente anterior para garantir que ele funcione com o novo comportamento consistente.
APIs afetadas
operator <<operator >>-
operator >>>parabyte,char,sbyte,shorteushortquando usado por meio de matemática genérica, o que requer umTrestrito awhere T : IShiftOperators<T, int, T>ou uma interface semelhante.