Sdílet prostřednictvím


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:

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í.