Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skiftåtgärder i allmän matematik har nu konsekvent beteende för alla inbyggda heltalstyper.
Tidigare beteende
Tidigare kan beteendet vid användning av allmän matematik för att utföra ett skift på en T variera beroende på typ. I vissa fall maskerade den skiftmängden korrekt med sizeof(T) - 1. Och i andra fall fanns det ingen maskering. Detta innebar att "överväxling" (till exempel att flytta en byte med 8) kunde resultera i andra svar än förväntat.
Nytt beteende
Implementeringarna uppdaterades för att maskera skiftningsvärdet, efter behov, för att säkerställa konsekvent beteende för alla inbyggda heltalstyper och följa det beteende som dokumenteras av System.Numerics.IShiftOperators<TSelf,TOther,TResult>-gränssnittet.
Version införd
.NET 10
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
Beteendet skilde sig från det utformade beteendet på grund av en skillnad i hur maskering fungerar för små heltalstyper i C#.
Rekommenderad åtgärd
Uppdatera all kod som förlitar sig på det tidigare inkonsekventa beteendet för att säkerställa att den fungerar med det nya konsekventa beteendet.
Berörda API:er
operator <<operator >>-
operator >>>förbyte,char,sbyte,shortochushortnär de används via allmän matematik, vilket kräver enTbegränsad tillwhere T : IShiftOperators<T, int, T>eller ett liknande gränssnitt.