Vector<T> genera sempre un'eccezione NotSupportedException per i tipi non supportati

System.Numerics.Vector<T> ora genera sempre un'eccezione NotSupportedException per i parametri di tipo non supportati.

Descrizione delle modifiche

In precedenza, i membri di Vector<T> non generavano sempre un'eccezione NotSupportedException quando T era un tipo non supportato. L'eccezione non veniva sempre generata a causa di percorsi del codice che supportano l'accelerazione hardware. Ad esempio, Vector<bool> + Vector<bool> restituiva default anziché generare un'eccezione sulle piattaforme senza accelerazione hardware, ad esempio Arm32. Per i tipi non supportati, i membri Vector<T> hanno mostrato un comportamento incoerente in diverse piattaforme e configurazioni hardware.

A partire da .NET 5, i membri Vector<T> generano sempre un'eccezione NotSupportedException in tutte le configurazioni hardware quando T non è un tipo supportato.

Tipi non supportati

I tipi supportati per il parametro di tipo di Vector<T> sono:

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

I tipi supportati non sono stati modificati, ma potrebbero cambiare in futuro.

Versione introdotta

5.0

Non usare un tipo non supportato per il parametro di tipo di Vector<T>.

API interessate