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
Kapcsolódó szabályok
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: