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 oboru názvů System.Runtime.Intrinsics.X86, může nyní vytvořit jiný výsledek než předchozí verze rozhraní .NET.

Spropitné

ISA je zkratka pro architekturu sady instrukcí.

Zavedená verze

5.0

Změnit popis

V předchozích verzích rozhraní .NET některé hardwarové typy System.Runtime.Intrinsics.X86, jako například System.Runtime.Intrinsics.X86.Aes, nezobrazovaly vnořenou třídu X64. Pro tyto typy je volání <Isa>.X64.IsSupported převedeno na vlastnost IsSupported ve vnořené třídě X64 rodičovské třídy <Isa>. To znamená, že i kdyby <Isa>.IsSupported vrátilo false, vlastnost by mohla vracet true.

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

Důvod změny

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

V případě potřeby upravte kód, který kontroluje IsSupported, aby zkontroloval příslušné standardy ISA.

Ovlivněná rozhraní API