Compartir a través de


El vector<T> siempre produce NotSupportedException para tipos no admitidos

System.Numerics.Vector<T> ahora siempre produce un NotSupportedException para los parámetros de tipo no admitidos.

Descripción del cambio

Anteriormente, los miembros de Vector<T> no siempre lanzaban un NotSupportedException cuando T era un tipo no admitido. La excepción no se iniciaba siempre debido a las rutas de acceso de código que permitían la aceleración de hardware. Por ejemplo, Vector<bool> + Vector<bool> devolvió default en lugar de lanzar una excepción en plataformas que no tienen aceleración de hardware, como Arm32. En el caso de los tipos no admitidos, Vector<T> los miembros mostraron un comportamiento incoherente en distintas plataformas y configuraciones de hardware.

A partir de .NET 5, los miembros Vector<T> siempre inician una excepción NotSupportedException en todas las configuraciones de hardware cuando T no es un tipo admitido.

Tipos no admitidos

Los tipos admitidos para el parámetro type de Vector<T> son:

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

Sin embargo, los tipos admitidos no han cambiado, pueden cambiar en el futuro.

Versión introducida

5.0

No use un tipo no admitido para el parámetro type de Vector<T>.

Las APIs afectadas