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


CA1043: Integrál vagy sztring argumentum használata indexelőkhöz

Tulajdonság Érték
Szabályazonosító CA1043
Cím Integrál vagy sztring argumentum használata indexelőkhöz
Kategória Design
A javítás kompatibilitástörő vagy nem törik Törés
Alapértelmezés szerint engedélyezve a .NET 8-ban Nem

Ok

A típus olyan indexelőt tartalmaz, amely nem System.Int32, System.Int64, System.Objectvagy System.Stringnem indextípust használ.

Ez a szabály alapértelmezés szerint csak külsőleg látható típusokat tekint meg, de ez konfigurálható.

Szabály leírása

Az indexelőknek, vagyis az indexelt tulajdonságoknak egész számokat vagy sztringtípusokat kell használniuk az indexhez. Ezeket a típusokat általában az adatstruktúrák indexelésére és a kódtár használhatóságának növelésére használják. A típus használatát azokra az Object esetekre kell korlátozni, amikor az adott egész vagy sztringtípus nem határozható meg a tervezéskor. Ha a kialakításhoz más típusú indexre van szükség, gondolja át, hogy a típus logikai adattárat jelöl-e. Ha nem logikai adattárat jelöl, használjon metódust.

Szabálysértések kijavítása

A szabály megsértésének kijavításához módosítsa az indexet egész számra vagy sztringtípusra, vagy használjon metódust az indexelő helyett.

Mikor kell letiltani a figyelmeztetéseket?

Csak a nem megfelelő indexelő szükségességének gondos mérlegelése után tiltsa le a szabály figyelmezteté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 CA1043
// The code that's violating the rule is on this line.
#pragma warning restore CA1043

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.CA1043.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Kód konfigurálása elemzéshez

A következő beállítással konfigurálhatja, hogy a kódbázis mely részein futtassa ezt a szabályt.

Ezt a beállítást konfigurálhatja csak ehhez a szabályhoz, az összes szabályhoz, vagy az ebben a kategóriában (Tervezés) szereplő összes szabályhoz, amelyekre vonatkozik. További információ: Kódminőségi szabály konfigurációs beállításai.

Adott API-felületek belefoglalása

A kódbázis azon részeit konfigurálhatja, amelyeken futtathatja ezt a szabályt az akadálymentességük alapján. Ha például meg szeretné adni, hogy a szabály csak a nem nyilvános API-felületen fusson, adja hozzá a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Példa

Az alábbi példa egy indexet használó indexelőt Int32 mutat be.

string[] Month = new string[] { "Jan", "Feb", "..." };

public string this[int index]
{
    get => Month[index];
}
Private month() As String = {"Jan", "Feb", "..."}

Default ReadOnly Property Item(index As Integer) As String
    Get
        Return month(index)
    End Get
End Property