Vector<T> lève toujours NotSupportedException pour les types non pris en charge

System.Numerics.Vector<T> lève désormais toujours NotSupportedException pour les paramètres de type non pris en charge.

Description de la modification

Auparavant, les membres de Vector<T> ne levaient pas toujours NotSupportedException quand T était un type non pris en charge. L’exception n’était pas toujours levée en raison des chemins de code qui prenaient en charge l’accélération matérielle. Par exemple, Vector<bool> + Vector<bool> retournait default au lieu de lever une exception sur les plateformes qui n’ont pas d’accélération matérielle, comme Arm32. Pour les types non pris en charge, les membres Vector<T> montraient un comportement incohérent sur différentes plateformes et configurations matérielles.

À compter de .NET 5, les membres Vector<T> lèvent toujours NotSupportedException sur toutes les configurations matérielles quand T n’est pas un type pris en charge.

Types non pris en charge

Les types pris en charge pour le paramètre de type Vector<T> sont les suivants :

  • byte
  • sbyte
  • short
  • ushort
  • int
  • uint
  • long
  • ulong
  • float
  • double

Les types pris en charge n’ont pas changé, mais ils pourraient le faire à l’avenir.

Version introduite

5,0

N’utilisez pas de type non pris en charge pour le paramètre de type Vector<T>.

API affectées