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.
A használati szabályok támogatják a .NET megfelelő használatát.
Ebben a szakaszban
| Szabály | Leírás |
|---|---|
| CA1801: A nem használt paraméterek áttekintése | A metódus-aláírás olyan paramétert tartalmaz, amely nem szerepel a metódus törzsében. |
| CA1816: A GC.SuppressFinalize helyes meghívása | Egy olyan metódus, amely a Dispose implementációja, nem hívja meg a(z) GC.SuppressFinalize elemet; vagy egy olyan metódus, amely nem a(z) Dispose implementációja, meghívja a(z) GC.SuppressFinalize elemet; vagy egy metódus meghívja a(z) GC.SuppressFinalize elemet, és a(z) this elemtől eltérő értéket ad át (Me a Visual Basicben). |
| CA2200: Újrafedés a verem részleteinek megőrzése érdekében | A kivételt újradobják, és a kivétel kifejezetten meg van adva a throw utasításban. Ha a kivételt a dobási utasításban megadott kivétel megadásával ismét meg kell ismételni, a metódushívások listája elveszik a kivételt eldobó eredeti metódus és az aktuális metódus között. |
| CA2201: Ne dobjon fenntartott kivételtípusokat | Ez megnehezíti az eredeti hiba észlelését és hibakeresését. |
| CA2207: Értéktípus statikus mezőinek inicializálása beágyazottan | Egy értéktípus explicit statikus konstruktort deklarál. A szabály megsértésének kijavításához inicializálja az összes statikus adatot a deklaráláskor, és távolítsa el a statikus konstruktort. |
| CA2208: Az argumentumkivétel helyes inicializálása | A rendszer meghívja az ArgumentumExceptionből származó vagy abból származtatott kivételtípus alapértelmezett (paraméter nélküli) konstruktorát, vagy helytelen sztringargumentumot ad át az ArgumentumExceptionből származó vagy abból származtatott kivételtípus paraméteres konstruktorának. |
| CA2211: A nem állandó mezők nem lehetnek láthatók | Azok a statikus mezők, amelyek nem konstansok és nem csak olvashatók, nem szálbiztosak. Az ilyen mezőkhöz való hozzáférést gondosan szabályozni kell, és fejlett programozási technikákat igényel az osztályobjektumhoz való hozzáférés szinkronizálásához. |
| CA2213: Eldobható mezőket kell megsemmisíteni | Az a típus, amely implementálja a(z) System.IDisposable elemet, olyan mezőket deklarál, amelyek típusa szintén implementálja a(z) IDisposable elemet. A Dispose mező metódusát nem a Dispose deklarálási típus metódusa hívja meg. |
| CA2214: A konstruktorokban ne hívja meg a felülírható metódusokat | Amikor egy konstruktor virtuális metódust hív meg, lehetséges, hogy a metódust meghívó példány konstruktora nem lett végrehajtva. |
| CA2215: A Dispose metódusoknak meg kell hívniuk az alaposztály Dispose metódusát | Ha egy típus egy eldobható típustól öröklődik, az Dispose alaptípus metódusát a saját Dispose metódusától kell meghívnia. |
| CA2216: Az eldobható típusoknak véglegesítőt kell deklarálniuk | A nem felügyelt erőforrások használatára javaslatot tevő mezőket implementáló System.IDisposabletípus nem implementál véglegesítőt a leírtak szerint Object.Finalize. |
| CA2217: Ne jelölje meg a számokat a FlagsAttribute használatával | A kívülről látható enumeráció meg van jelölve FlagsAttribute karakterrel, és egy vagy több olyan értéke van, amely nem kettő hatványa, és nem is az enumerációban definiált többi érték kombinációja. |
| CA2218: A GetHashCode felülírása az Equals felülbírálásakor | Egy nyilvános típus felülbírálja a(z) System.Object.Equals elemet, de a(z) System.Object.GetHashCode elemet nem bírálja felül. |
| CA2219: Ne emelj kivételeket a kivételkikötésekben | Ha a rendszer kivételt hoz létre egy végső vagy tartalék záradékban, az új kivétel elrejti az aktív kivételt. Ha egy szűrőfeltételben kivétel keletkezik, a futtatókörnyezet csendben elkapja a kivételt. Ez megnehezíti az eredeti hiba észlelését és hibakeresését. |
| CA2224: A(z) egyenlőségoperátor túlterhelésekor bírálja felül az Equals metódust | A nyilvános típus megvalósítja az egyenlőségi operátort, de nem írja felül a(z) System.Object.Equals elemet. |
| CA2225: Az operátorok túlterhelései alternatívokat neveztek el | Operátor-túlterhelés lett észlelve, és a várt elnevezett alternatív metódus nem található. A nevesített alternatív tag ugyanazokat a funkciókat biztosítja, mint az operátor, és olyan fejlesztők számára érhető el, akik olyan nyelveken programozzanak, amelyek nem támogatják a túlterhelt operátorokat. |
| CA2226: Az operátoroknak szimmetrikus túlterhelésekkel kell rendelkezniük | Egy típus megvalósítja az egyenlőségi vagy egyenlőtlenségi operátort, és nem valósítja meg az ellenkező operátort. |
| CA2227: A gyűjtemény tulajdonságainak csak olvashatónak kell lenniük | A írható gyűjteménytulajdonságokkal a felhasználó lecserélheti a gyűjteményt egy másik gyűjteményre. Egy írásvédett tulajdonság megakadályozza a gyűjtemény cseréjét, de továbbra is lehetővé teszi az egyes tagok beállítását. |
| CA2229: Szerializálási konstruktorok implementálása | A szabály megsértésének kijavításához implementálja a szerializálási konstruktort. Lezárt osztály esetén a konstruktort tegye priváttá; ellenkező esetben tegye védetté. |
| CA2231: Az egyenlőségoperátor túlterhelése a ValueType.Equals felülírásakor | Egy értéktípus felülírja a(z) Object.Equals elemet, de nem valósítja meg az egyenlőségi operátort. |
| CA2234: System.Uri-objektumok átadása sztringek helyett | Egy olyan metódus kerül meghívásra, amelynek van egy sztringparamétere, és a paraméter neve tartalmazza az „uri”, „URI”, „urn”, „URN”, „url” vagy „URL” elemek valamelyikét. A metódust deklaráló típus tartalmaz egy megfelelő metódustúlterhelést, amely System.Uri paraméterrel rendelkezik. |
| CA2235: Az összes nem szerializálható mező megjelölése | A nem szerializálható típusú példánymezők szerializálható típusban deklarálhatók. |
| CA2237: ISerializable-típusok megjelölése a SerializableAttribute használatával | Ahhoz, hogy a közös nyelvi futtatókörnyezet szerializálhatóként felismerje, a típusokat akkor is meg kell jelölni a SerializableAttribute attribútummal, ha a típus egyéni szerializálási rutint használ a ISerializable felület implementálásán keresztül. |
| CA2241: Helyes argumentumok megadása a formázási módszerekhez | Az átadott String.Format formátumargumentum nem tartalmaz olyan formázási elemet, amely megfelel az egyes objektumargumentumoknak, vagy fordítva. |
| CA2242: A NaN helyes tesztelése | Ez a kifejezés egy értéket a Single.Nan vagy a Double.Nan értékhez viszonyít. Használja a(z) Single.IsNan(Single) vagy Double.IsNan(Double) elemet az érték teszteléséhez. |
| CA2243: Az attribútum-karakterláncliteráloknak helyesen elemezhetőnek kell lenniük | Az attribútum sztringkonstans paramétere nem elemzi megfelelően az URL-címet, a GUID-t vagy a verziót. |
| CA2244: Ne duplikálja az indexelt elemek inicializálását | Az objektuminicializáló több indexelt eleminicializálóval rendelkezik, ugyanazzal az állandó indexel. Az utolsó inicializáló kivételével mindegyik redundáns. |
| CA2245: Ne rendeljen hozzá tulajdonságot önmagához | Egy tulajdonság véletlenül hozzá lett rendelve önmagához. |
| CA2246: Ne rendeljen hozzá szimbólumot és tagját ugyanabban az utasításban | Nem ajánlott egy szimbólumot és annak tagját, azaz egy mezőt vagy tulajdonságot hozzárendelni ugyanabban az utasításban. Nem egyértelmű, hogy ebben az utasításban a taghozzáférés a szimbólum hozzárendelés előtti régi értékének, vagy a hozzárendelésből származó új értékének a használatára szolgált-e. |
| CA2247: A TaskCompletionSource konstruktornak átadott argumentumnak TaskCreationOptions enumnak kell lennie a TaskContinuationOptions enum helyett | A TaskCompletionSource rendelkezik olyan konstruktorokkal, amelyek a mögöttes Taskot vezérlő TaskCreationOptions értéket vesznek át, valamint olyan konstruktorokkal is, amelyek a Taskban tárolt objektumállapotot vesznek át. Ha a TaskCreationOptions helyett véletlenül egy TaskContinuationOptions parancsot ad át, a hívás állapotként kezeli a beállításokat. |
| CA2248: Adja meg a helyes "enum" argumentumot az "Enum.HasFlag" értékhez | A metódushívás argumentumaként HasFlag átadott számtípus eltér a hívó szám típusától. |
| CA2249: Fontolja meg a String.Contains használatát a String.IndexOf helyett | Azok a string.IndexOf hívások, amelyek eredményét egy részkarakterlánc jelenlétének vagy hiányának ellenőrzésére használják, lecserélhetők erre: string.Contains. |
CA2250: Használja a(z) ThrowIfCancellationRequested |
ThrowIfCancellationRequested automatikusan ellenőrzi, hogy a token megszakításra került-e, és ha igen, OperationCanceledException kivételt dob. |
CA2251: A String.Equals használata a String.Compare helyett |
A String.Equals eredményének nullához hasonlítása helyett a String.Compare használata egyértelműbb, és valószínűleg gyorsabb is. |
| CA2252: Az előzetes verziójú funkciók használata | Az előzetes verziójú API-k használata előtt jelentkezzen be a funkciók előzetes verziójára. |
| CA2253: A névvel ellátott helyőrzők nem lehetnek numerikus értékek | A naplózási üzenetsablonban az elnevezett helyőrzők nem állhatnak kizárólag számjegyekből. |
| CA2254: A sablonnak statikus kifejezésnek kell lennie | A naplózási üzenet sablonja nem változhat a hívások között. |
CA2255: Az ModuleInitializer attribútum nem használható kódtárakban |
A modulinicializálókat az alkalmazáskód arra használja, hogy az alkalmazás összetevői inicializálva legyenek az alkalmazáskód végrehajtása előtt. |
| CA2256: A szülőfelületeken deklarált összes tagnak implementációval kell rendelkeznie egy DynamicInterfaceCastableImplementation attribútumú felületen | A(z) DynamicInterfaceCastableImplementationAttribute attribútummal ellátott típusok interfészmegvalósításként szolgálnak egy olyan típus számára, amely megvalósítja a(z) IDynamicInterfaceCastable típust. Ennek eredményeképpen biztosítania kell az örökölt felületeken meghatározott összes tag implementálását, mivel a megvalósító IDynamicInterfaceCastable típus másként nem biztosítja őket. |
| CA2257: A DynamicInterfaceCastableImplementationAttribute felületen definiált tagoknak "statikusnak" kell lenniük | Mivel egy IDynamicInterfaceCastable típust implementáló entitás nem implementálhat dinamikus interfészt a metaadatokban, az olyan példányinterfész tagokra történő hívások, amelyek nincsenek explicit módon ezen a típuson implementálva, valószínűleg sikertelenek lesznek futásidőben. Új felülettagok static megjelölése a futtatókörnyezeti hibák elkerülése érdekében. |
| CA2258: A Visual Basic "DynamicInterfaceCastableImplementation" felületének biztosítása nem támogatott | Funkcionális DynamicInterfaceCastableImplementationAttribute-attribútumú felület biztosításához az Alapértelmezett felülettagok funkció szükséges, amely a Visual Basicben nem támogatott. |
CA2259: Győződjön meg arról, hogy ThreadStatic csak statikus mezőkkel van használatban |
ThreadStaticAttribute csak a static mezőket érinti (a Visual Basicben: Shared). A példánymezőkre alkalmazva az attribútum nem befolyásolja a viselkedést. |
| CA2260: Általános matematikai felületek helyes implementálása | Az általános matematikai interfészek megkövetelik, hogy maga a származtatott típus legyen használva az ön-ismétlődő típusparaméterhez. |
CA2261: Ne használja együtt a(z) ConfigureAwaitOptions.SuppressThrowing és a(z) Task<TResult> elemet. |
A ConfigureAwaitOptions.SuppressThrowing beállítást az általános Task<TResult>nem támogatja, mivel ez érvénytelen TResulteredményhez vezethet. |
CA2262: Megfelelő beállítás MaxResponseHeadersLength |
Győződjön meg arról, hogy az MaxResponseHeadersLength érték helyesen van megadva. Ez az érték kilobájtban van megadva. |
| CA2263: Részesítse előnyben a generikus túlterhelést, ha a típus ismert | A generikus túlterhelés használata előnyösebb, mint egy System.Type argumentum átadása, ha a típus ismert, mert tisztább és típusbiztosabb kódot eredményez, valamint jobb fordítási idejű ellenőrzéseket tesz lehetővé. |
| CA2264: Ne adjon át nem null értékű értéket az "ArgumentNullException.ThrowIfNull" értéknek | Az 'ArgumentNullException.ThrowIfNull' akkor dob, ha az átadott argumentum értéke "null". Bizonyos konstrukciók, például a nem nullázható struktúrák, valamint a „nameof()” és a „new” kifejezések köztudottan soha nem lehetnek null értékűek, ezért az „ArgumentNullException.ThrowIfNull” soha nem dob kivételt. |
CA2265: Ne hasonlítsa össze Span<T> a nulldefault |
Egy span összehasonlítása a null vagy a default elemmel lehet, hogy nem azt eredményezi, amit szándékozott.
default és a null literál implicit módon Span<T>.Empty-ra konvertálódnak. |
CA2266: A fájlalapú program belépési pontnak a következővel kell kezdődnie: #! |
Ha egy fájlalapú program több fájlból áll, a belépési pont fájljának egy shebang (#!) vonallal kell kezdődnie, hogy egyértelműen megkülönböztetje a többi fájltól. |
Dolgozzon együtt velünk a GitHubon
A tartalom forrása a GitHubon található, ahol létrehozhat és áttekinthet problémákat és lekéréses kérelmeket is. További információért tekintse meg a közreműködői útmutatónkat.