SYSLIB0055: Metody AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* se podepsanými parametry jsou zastaralé.
Následující metody, které přijímají podepsaná celá čísla, jsou zastaralé, počínaje rozhraním .NET 9:
- AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int64>, Byte)
- AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int16>, Byte)
- AdvSimd.Arm64.ShiftRightLogicalRoundedNarrowingSaturateScalar(Vector64<Int32>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int16>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int64>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateLower(Vector128<Int32>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<SByte>, Vector128<Int16>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int16>, Vector128<Int32>, Byte)
- AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<Int32>, Vector128<Int64>, Byte)
Volání v kódu generuje upozornění SYSLIB0055
v době kompilace.
Důvod obsoletion
Instrukce Arm Advanced SIMD UQRSHRN
provádí nepodepsanou úzkou operaci bez znaménka. Výsledek je proto vždy bez znaménka. Ovlivněná rozhraní API však akceptovala a vrátila podepsané typy, což znamená, že nefungovala podle očekávání, pokud jste postupovali podle popisu rozhraní API, nikoli popisu instrukce. Kromě toho nelze základní implementaci opravit, aby prováděla operace s nasycenými podepsanými úzkými operacemi a vrátila podepsané výsledky.
Alternativní řešení
Záměrně převeďte data na podepsané typy a místo toho zavolejte odpovídající nepodepsané přetížení, AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<UInt32>, Vector128<UInt64>, Byte)například . Poté záměrně převeďte výsledek na podepsaný typ.
Potlačení upozornění
Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.
Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.
// Disable the warning.
#pragma warning disable SYSLIB0055
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0055
Pokud chcete potlačit všechna SYSLIB0055
upozornění v projektu, přidejte <NoWarn>
do souboru projektu vlastnost.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0055</NoWarn>
</PropertyGroup>
</Project>
Další informace naleznete v tématu Potlačení upozornění.