Megosztás a következőn keresztül:


CA1516: Platformfüggetlen belső mechanika használata

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.