共用方式為


對於巢狀類型,硬體內建的 IsSupported 檢查可能會有所不同。

檢查 <Isa>.X64.IsSupported,其中 <Isa> 參考 System.Runtime.Intrinsics.X86 命名空間中的類別,現在可能會產生與舊版 .NET 不同的結果。

提示

ISA 代表指令集架構。

引進的版本

5.0

變更描述

在舊版 .NET 中,某些 System.Runtime.Intrinsics.X86 硬體內建型別,例如,System.Runtime.Intrinsics.X86.Aes,並未公開巢狀 X64 類別。 針對這些類型,呼叫 <Isa>.X64.IsSupported 被解析為屬於 <Isa>父類別中巢狀 X64 類別的 IsSupported 屬性。 這表示即使 <Isa>.IsSupported 傳回 false,屬性仍可傳回 true

在 .NET 5 和更高版本中,所有 System.Runtime.Intrinsics.X86 類型都會公開一個巢狀 X64 類別,以適當報告支援情況。 這可確保一般階層保持正確,而且如果 <Isa>.X64.IsSupportedtrue,則也可以假設 <Isa>.IsSupportedtrue

變更的原因

它的目的是,如果 <Isa>.X64.IsSupportedtrue<Isa>.IsSupported 也暗示為 true。 不過,由於 C# 中成員解析的運作方式,如果類別中沒有巢狀的 X64 類別,會暴露出某些情況,這在某些情況下並不成立,從而導致使用者程式碼中的錯誤。

如有必要,請調整用於檢查 IsSupported 的程式代碼,以檢查適當的 ISA。

受影響的 API