Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| Property | Value |
|---|---|
| Szabályazonosító | CA1516 |
| Title | Platformfüggetlen belső mechanika használata |
| Category | Maintainability |
| A javítás törést okoz vagy nem okoz törést | Non-breaking |
| Alapértelmezés szerint engedélyezve a .NET 10-ben | No |
Cause
Platform- vagy architektúraspecifikus belső elemet akkor használunk, ha létezik platformfüggetlen egyenértékű.
Szabály leírása
Ez a szabály észleli a platformspecifikus belső tényezők használatát, amelyek ehelyett egyenértékű platformfüggetlen belsővel helyettesíthetők.
Szabálysértések kijavítása
Alkalmazza a kódot a megfelelő platformfüggetlen belső használatára kapcsoló javítót.
Example
A következő kódrészlet a CA1516 három hasonló szabálysértést mutat be:
using System;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.Arm;
using System.Runtime.Intrinsics.Wasm;
using System.Runtime.Intrinsics.X86;
class C
{
Vector128<byte> M1(Vector128<byte> x, Vector128<byte> y) => AdvSimd.Add(x, y);
Vector128<byte> M2(Vector128<byte> x, Vector128<byte> y) => Sse2.Add(x, y);
Vector128<byte> M3(Vector128<byte> x, Vector128<byte> y) => PackedSimd.Add(x, y);
}
A következő kódrészlet kijavítja a szabálysértést, és a javító alkalmazza:
using System;
using System.Runtime.Intrinsics;
class C
{
Vector128<byte> M1(Vector128<byte> x, Vector128<byte> y) => x + y;
Vector128<byte> M2(Vector128<byte> x, Vector128<byte> y) => x + y;
Vector128<byte> M3(Vector128<byte> x, Vector128<byte> y) => x + y;
}
A javítás alkalmazása után nyilvánvalóbbá válik, hogy a három módszer egyszerűbbé válik, hogy egyetlen metódus legyen, amely minden platformon működik.
Mikor kell letiltani a figyelmeztetéseket?
Ha nem aggódik a kód karbantarthatósága miatt, nyugodtan letilthatja a szabály megsértését.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1516
// The code that's violating the rule is on this line.
#pragma warning restore CA1516
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1516.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Elemzést végző kód konfigurálása
Konfigurálhatja, hogy mely kimeneti szerelvénytípusokra alkalmazza ezt a szabályt. Ha például ezt a szabályt csak konzolalkalmazást vagy dinamikusan csatolt kódtárat (azaz nem felhasználói felületi alkalmazást) előállító kódra szeretné alkalmazni, adja hozzá a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:
dotnet_code_quality.CA1516.output_kind = ConsoleApplication, DynamicallyLinkedLibrary
További információ: output_kind.