Sdílet prostřednictvím


Hardwarové vnitřní kontroly IsSupported se můžou u vnořených typů lišit.

Kontrola <Isa>.X64.IsSupported, kde <Isa> odkazuje na třídy v System.Runtime.Intrinsics.X86 oboru názvů, teď může vytvořit jiný výsledek než předchozí verze .NET.

Tip

ISA je zkratka pro oborové standardní architektury.

Zavedená verze

5,0

Změna popisu

V předchozích verzích rozhraní .NET některé typy System.Runtime.Intrinsics.X86 hardwaru, například System.Runtime.Intrinsics.X86.Aes, nezpřístupnily vnořenou X64 třídu. U těchto typů volání <Isa>.X64.IsSupported překládá na IsSupported vlastnost vnořené X64 třídě nadřazené třídy <Isa>třídy . To znamená, že vlastnost by mohla vrátit true , i když <Isa>.IsSupported se vrátí false.

Ve verzích .NET 5 a novějších System.Runtime.Intrinsics.X86 zveřejňuje všechny typy vnořenou X64 třídu, která odpovídajícím způsobem hlásí podporu. Tím zajistíte, že obecná hierarchie zůstane správná, a pokud <Isa>.X64.IsSupported je true, pak <Isa>.IsSupported lze předpokládat, že .true

Důvod změny

Bylo zamýšleno, že pokud <Isa>.X64.IsSupported je true, <Isa>.IsSupported je také implicitní být true. Vzhledem k tomu, jak funguje řešení členů v jazyce C#, ale třídy, které nemají vnořenou X64 třídu, odhalily situaci, kdy to nebylo vždy případ a vedlo k chybám v uživatelském kódu.

V případě potřeby upravte kód, který zkontroluje IsSupported příslušnou sadu ISA.

Ovlivněná rozhraní API