Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verschiebungsvorgänge in generischer Mathematik verfügen jetzt über ein einheitliches Verhalten für alle integrierten ganzzahligen Typen.
Vorheriges Verhalten
Bisher konnte sich das Verhalten beim Verwenden von generischen Mathematikoperationen, um eine Verschiebung auf ein T durchzuführen, abhängig vom Typ unterscheiden. In einigen Fällen wurde der Verschiebungswert auf angemessene Weise mit sizeof(T) - 1 maskiert. Und in anderen Fällen gab es keine Maskierung. Dies bedeutete, dass eine „Überverschiebung“ (z. B. das Verschieben eines byte um 8 Stellen) zu unerwarteten Ergebnissen führen könnte.
Neues Verhalten
Die Implementierungen wurden aktualisiert, um den Verschiebungsbetrag entsprechend zu maskieren, um ein konsistentes Verhalten für alle integrierten ganzzahligen Typen sicherzustellen und mit dem Verhalten übereinzustimmen, das von der System.Numerics.IShiftOperators<TSelf,TOther,TResult>-Schnittstelle dokumentiert ist.
Eingeführt in Version
.NET 10
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
Das Verhalten unterscheidet sich vom entworfenen Verhalten aufgrund eines Unterschieds bei der Funktionsweise der Maskierung für kleine ganzzahlige Typen in C#.
Empfohlene Aktion
Aktualisieren Sie jeden Code, der auf dem vorherigen inkonsistenten Verhalten basiert, um sicherzustellen, dass er mit dem neuen konsistenten Verhalten funktioniert.
Betroffene APIs
operator <<operator >>-
operator >>>fürbyte,char,sbyte,shortundushortbei Verwendung mittels generischer Mathematik, dieTaufwhere T : IShiftOperators<T, int, T>oder eine ähnliche Schnittstelle beschränkt erfordert.