Aracılığıyla paylaş


SYSLIB0055: İmzalı parametrelere sahip AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* yöntemleri kullanımdan kaldırıldı

.NET 9'dan başlayarak, imzalı tamsayıları kabul eden aşağıdaki yöntemler eskidir:

Bunları kodda çağırmak, derleme zamanında uyarı SYSLIB0055 oluşturur.

Kullanımdan kaldırılmış olma nedeni

Arm Advanced SIMD UQRSHRN yönergesi işaretsiz doygunlukta dar bir işlem gerçekleştirir. Bu nedenle, sonucu her zaman imzasızdır. Ancak, etkilenen API'ler imzalı türleri kabul etti ve döndürdü, yani yönerge açıklaması yerine API açıklamasını izlediyseniz beklendiği gibi çalışmadılar. Ayrıca, imzalı doygunlukta dar işlemler gerçekleştirmek ve imzalı sonuçlar döndürmek için temel alınan uygulama düzeltilemiyor.

Geçici çözüm

Verileri kasıtlı olarak imzalı türlere dönüştürün ve bunun yerine ilgili imzasız aşırı yüklemeyi çağırın, örneğin, AdvSimd.ShiftRightLogicalRoundedNarrowingSaturateUpper(Vector64<UInt32>, Vector128<UInt64>, Byte). Ardından, sonucu kasıtlı olarak imzalı bir türe dönüştürün.

Uyarıyı gizleme

Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.

Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.

// Disable the warning.
#pragma warning disable SYSLIB0055

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

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

Projenizdeki tüm SYSLIB0055 uyarıları engellemek için proje dosyanıza bir <NoWarn> özellik ekleyin.

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

Daha fazla bilgi için bkz . Uyarıları gizleme.