Delen via


SYSLIB0055: AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate*-methoden met ondertekende parameters zijn verouderd

De volgende methoden die ondertekende gehele getallen accepteren, zijn verouderd vanaf .NET 9:

Als u deze in code aanroept, wordt er een waarschuwing SYSLIB0055 gegenereerd tijdens het compileren.

Reden voor verdoezeling

De Arm Advanced SIMD-instructie UQRSHRN voert een niet-ondertekende verzadigingssmale bewerking uit. Als zodanig is het resultaat altijd niet ondertekend. De betrokken API's hebben echter ondertekende typen geaccepteerd en geretourneerd, wat betekent dat ze niet werken zoals verwacht als u de API-beschrijving hebt gevolgd in plaats van de instructiebeschrijving. Bovendien kan de onderliggende implementatie niet worden gecorrigeerd om ondertekende verzadigingsbewerkingen uit te voeren en ondertekende resultaten te retourneren.

Tijdelijke oplossing

Converteer de gegevens opzettelijk naar ondertekende typen en roep in plaats daarvan de bijbehorende niet-ondertekende overbelasting aan, AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<UInt32>, Vector128<UInt64>, Byte)bijvoorbeeld. Converteer het resultaat vervolgens opzettelijk naar een ondertekend type.

Een waarschuwing onderdrukken

Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.

// Disable the warning.
#pragma warning disable SYSLIB0055

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0055

Als u alle SYSLIB0055 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0055</NoWarn>
  </PropertyGroup>
</Project>

Zie Waarschuwingen onderdrukken voor meer informatie.