Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Następujące metody, które akceptują podpisane liczby całkowite, są przestarzałe, począwszy od platformy .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)
Wywołanie ich w kodzie generuje ostrzeżenie SYSLIB0055 w czasie kompilacji.
Przyczyna obsoletionu
Instrukcja Arm Advanced SIMD UQRSHRN wykonuje niepodpisane nasyconych wąskich operacji. W związku z tym jego wynik jest zawsze niepodpisany. Jednak interfejsy API, których dotyczy problem, zaakceptowały i zwróciły podpisane typy, co oznacza, że nie działały zgodnie z oczekiwaniami, jeśli postępowano zgodnie z opisem interfejsu API, a nie opisem instrukcji. Ponadto nie można poprawić podstawowej implementacji w celu wykonania podpisanych nasyconych wąskich operacji i zwracania podpisanych wyników.
Rozwiązanie
Celowo przekonwertuj dane na typy podpisane i wywołaj odpowiednie niepodpisane przeciążenie, na przykład AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<UInt32>, Vector128<UInt64>, Byte). Następnie celowo przekonwertuj wynik na typ podpisany.
Pomijanie ostrzeżenia
Jeśli musisz używać przestarzałych interfejsów API, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
// Disable the warning.
#pragma warning disable SYSLIB0055
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0055
Aby pominąć wszystkie SYSLIB0055 ostrzeżenia w projekcie, dodaj <NoWarn> właściwość do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0055</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.