Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As operações de deslocamento na matemática genérica agora têm um comportamento consistente em todos os tipos inteiros embutidos.
Comportamento anterior
Anteriormente, o comportamento ao utilizar a matemática genérica para executar uma mudança em um T pode ser diferente com base no tipo. Em alguns casos, ele mascarou adequadamente a quantidade de deslocamento em sizeof(T) - 1. E em outros casos, não havia mascaramento. Isso significava que a "mudança excessiva" (como a mudança de um byte por 8) poderia resultar em respostas diferentes do esperado.
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 alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O comportamento difere do comportamento projetado devido a uma diferença na forma 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 utilizados através de operações matemáticas genéricas, o que requer umTrestrito awhere T : IShiftOperators<T, int, T>ou a uma interface semelhante.