Sdílet prostřednictvím


Rozšířená pravidla návrhu pokyny sadu pravidel pro spravovaný kód

Sada pravidel Microsoft rozšířená pravidla návrhu obecných zásad se rozšíří na základní návrh pravidel obecné maximalizovat použitelnosti a recyklovatelných problémy, které jsou hlášeny.Extra důraz je kladen na pojmenování pokyny.Měli byste zvážit, včetně tohoto pravidla, pokud projekt obsahuje kód knihovny nebo chcete-li zajistit nejvyšší standardy pro psaní kódu, který je snadná.

Pravidla návrhu obecných zásad Extended zahrnují všechna pravidla obecné základní návrhu.Základní pravidla návrhu obecných zásad zahrnout všechny Microsoft Minimální doporučená pravidla.Další informace naleznete v tématu Základní návrh pravidel obecné pravidlo pro spravovaný kód a Spravované doporučená pravidla sadu pravidel pro spravovaný kód.

Následující tabulka popisuje všechna pravidla v sadě Microsoft rozšířená pravidla návrhu obecné pravidlo.

Pravidlo

Description

CA1001

Typy, které vlastní jednorázových polí by mělo být na jedno použití

CA1009

Správně deklarovat obslužné rutiny událostí

CA1016

Značka sestav s AssemblyVersionAttribute

CA1033

Metody rozhraní by měla být volána skriptem podřízené typy

CA1049

Typy vlastních nativní zdrojů by měly být na jedno použití

CA1060

Přesunout do třídy NativeMethods P/Invokes

CA1061

Nelze skrýt metody základní třídy.

CA1063

Správně implementovat IDisposable

CA1065

Nevyvolávají výjimky v neočekávané umístění

CA1301

Vyhnout se duplicitní akcelerátory

CA1400

Vstupní body P/Invoke by existovat.

CA1401

P/Invokes nemusí být viditelné

CA1403

Typy automatického rozložení nesmí být viditelné COM

CA1404

Volání funkce GetLastError ihned po vyvolání/P

CA1405

Základní typy viditelný typ COM musí být viditelné COM

CA1410

Najít odpovídající registraci metod modelu COM

CA1415

Správně deklarovat P/Invokes

CA1821

Odstranit prázdné finalizačních metod

CA1900

Pole typu hodnota by měla být přenosný

CA1901

P/Invoke prohlášení by mělo být přenosný

CA2002

Zamknout na objekty s identitou slabé

CA2100

Zkontrolujte chyby zabezpečení dotazy SQL

CA2101

Určit zařazování pro řetězcové argumenty P/Invoke.

CA2108

Přezkoumání deklarativní zabezpečení na hodnotu typy

CA2111

Ukazatele nemusí být viditelné

CA2112

Nesmí vystavovat zabezpečené typy polí

CA2114

Metoda zabezpečení by měl být nadmnožinou typu

CA2116

Metody APTCA by pouze volání metod APTCA

CA2117

Typy APTCA by měl rozšířit pouze základní typy APTCA

CA2122

Nepřímo neuvádějí metody s požadavky propojení

CA2123

Přepsat spojení, které by měly být shodné základní požadavky

CA2124

Obtékání ohrožen nakonec klauzulí ve vnější akci

CA2126

Typ propojení požadavků vyžadují dědičnost poptávek

CA2131

Důležité typy zabezpečení není součástí typu rovnocennost

CA2132

Musí být výchozí konstruktory důležité jako základní typ výchozí konstruktory

CA2133

Delegáti musí navázat na metody s konzistentní průhlednost

CA2134

Metody musí zachovat konzistentní průhlednost při přepsání základní metody

CA2137

Transparentní metody musí obsahovat pouze ověřitelné IL

CA2138

Transparentní metody musí nelze volat metody s atributem SuppressUnmanagedCodeSecurity

CA2140

Průhledné kód musí odkazovat není zabezpečení důležité položky

CA2141

Transparentní metody musí splňovat není LinkDemands

CA2146

Typy musí být důležité jako rozhraní a základní typy

CA2147

Transparentní metody nelze použít zabezpečení nepodmíněných výrazů

CA2149

Transparentní metody musí není volání do nativního kódu

CA2200

Rethrow zachovat podrobnosti zásobníku

CA2202

Neodstraňovat několikrát objekty

CA2207

Inicializace vložené statické pole typu hodnota

CA2212

Neoznačovat servisu komponenty s WebMethod

CA2213

Na jedno použití polí by vyřazen.

CA2214

Nevolejte overridable metody konstruktory

CA2216

Typy jednorázových by měla deklarovat finalizačních metod

CA2220

Základní třída finalizačních metod by měla zavolat finalizačních metod

CA2229

Implementovat serializace konstruktory

CA2231

Přetížení operátor rovná se na přepsání ValueType.Equals

CA2232

Značka model Windows Forms vstupní body s STAThread

CA2235

Označit všechna pole není serializovatelný.

CA2236

Typy ISerializable volat metody základní třídy.

CA2237

Typy ISerializable značka s SerializableAttribute

CA2238

Správně implementovat metody serializace

CA2240

Správně implementovat ISerializable

CA2241

Poskytovat správné argumenty metody formátování

CA2242

Test správně NaN

CA1000

V obecných typech prohlásí statické členy

CA1002

Neuvádějí obecný seznam

CA1003

Použít událost obecný popisovač instance

CA1004

Obecné metody by měl poskytnout parametr typu

CA1005

Vyhnout se nadměrnému parametry na obecné typy

CA1006

Nelze vnořit obecné typy v podpisech členské

CA1007

Případně pomocí generics

CA1008

Výčty musí mít nulovou hodnotu

CA1010

Kolekce musí implementovat rozhraní obecný

CA1011

Zvažte předávání základních typů jako parametry

CA1012

Abstraktní typy by neměl mít konstruktory

CA1013

Rovná se operátor přetížení na přetížení sečíst a odečíst

CA1014

Značka sestav s CLSCompliantAttribute

CA1017

Značka sestav s ComVisibleAttribute

CA1018

Atributy značky s AttributeUsageAttribute

CA1019

Definování přístupové objekty pro argumenty atributu

CA1023

Indexování by neměl být multidimenzionální

CA1024

V případě potřeby použít vlastnosti

CA1025

Opakované argumenty nahradit params matice

CA1026

By neměl být použit výchozí parametry

CA1027

Označit výčty s FlagsAttribute

CA1028

Výčet úložiště by mělo být Int32

CA1030

Případně pomocí událostí

CA1031

Nemusí zachytit výjimku obecné typy

CA1032

Implementace standardní výjimku konstruktory

CA1034

Typy vnořených nemusí být viditelné

CA1035

Implementace rozhraní ICollection mají silný členů

CA1036

Přepsat metody srovnatelných typů

CA1038

Čítače výčtů by měla být silný

CA1039

Silný seznamy

CA1041

Poskytnout zprávu ObsoleteAttribute

CA1043

Pomocí integrálního nebo řetězec argumentu pro indexování

CA1044

Vlastnosti nelze zapisovat pouze

CA1046

Přetěžování není operátor rovná se na typy odkazů

CA1047

Chráněné členy v uzavřených typů prohlásí.

CA1048

Virtuální členy v uzavřených typů prohlásí.

CA1050

Deklarovat typy v oborech názvů

CA1051

Pole viditelné instancí prohlásí.

CA1052

Držitel statické typy by měly být zapečetěny.

CA1053

Držitel statické typy by neměl mít konstruktory

CA1054

Parametry URI by neměl být řetězce

CA1055

Identifikátor URI vrátit hodnoty by neměl být řetězce

CA1056

Vlastnosti identifikátoru URI by neměl být řetězce

CA1057

Řetězec identifikátoru URI přetížení volat přetížení System.Uri

CA1058

Typy by nemělo být rozšířeno určité základní typy

CA1059

Členové nesmí vystavovat určité typy betonu

CA1064

Výjimky by měly být veřejné

CA1500

Názvy proměnných by názvy polí neodpovídají

CA1502

Vyhnout se nadměrnému složitost

CA1708

Identifikátory měly lišit o více než případu

CA1716

Identifikátory by neodpovídají klíčová slova

CA1801

Kontrolovat nepoužité parametry

CA1804

Odebrání nepoužívaných locals

CA1809

Vyhnout se nadměrnému locals

CA1810

Inicializace vložené statické pole Typ odkazu

CA1811

Zamezení zúčtován soukromé kód

CA1812

Vyhnout se bez instancí třídy interní

CA1813

Zamezení neuzavřených atributy

CA1814

Raději Vícenásobná pole nad multidimenzionální

CA1815

Rovná se přepsat a operátor rovná se hodnota typů

CA1819

Vlastnosti by měly nevrací matice

CA1820

Test prázdné řetězce pomocí délka řetězce

CA1822

Členové označit jako statický

CA1823

Vyhnout se nepoužité pole private

CA2201

Nevyvolávají výjimku vyhrazené typy

CA2205

Použití spravovaných ekvivalenty rozhraní Win32 API

CA2208

Vytvoření instance výjimky argument správně

CA2211

Konstanta není pole nemusí být viditelné

CA2217

Neoznačovat výčty s FlagsAttribute

CA2219

Nevyvolávají výjimky v klauzulích výjimky

CA2221

Finalizačních metod by měly být chráněny.

CA2222

Viditelnost zděděný člen poklesu.

CA2223

Členové by se lišit o více než návratový typ

CA2224

Rovná se přepsat na přetížení operátor rovná se

CA2225

Operátor přetížení jsou pojmenovány alternativy

CA2226

Operátory by měly mít symetricky přetížení

CA2227

Vlastnosti kolekce by pouze čtení

CA2230

Použijte parametry pro proměnné argumenty

CA2234

Průchod System.Uri objekty namísto řetězce

CA2239

Poskytovat rekonstrukci metody pro volitelné pole

CA1020

Vyhnout se obory s několika typy

CA1021

Vyhnout se výstupní parametry

CA1040

Vyhnout se prázdné rozhraní

CA1045

Typy neprojde odkazem

CA1062

Argumenty veřejné metody ověření

CA1501

Vyhnout se nadměrnému dědičnosti

CA1504

Zkontrolujte zavádějící názvy polí

CA1505

Vyhnout se unmaintainable kód

CA1506

Vyhnout se nadměrnému třídy spojovacího zařízení

CA1700

Název hodnoty výčtu není při "Vyhrazené"

CA1701

Uváděna velkými složená slova řetězec zdroje by měly být písmeny správně

CA1702

Uváděna velkými složená slova by měla být písmeny správně

CA1703

Zdrojové řetězce by zadán správně

CA1704

Identifikátory by měla být zadána správně

CA1707

Identifikátory nesmí obsahovat podtržítka

CA1709

Uváděna velkými identifikátory by měla být písmeny správně

CA1710

Identifikátory má správnou příponu.

CA1711

Identifikátory by neměl mít Nesprávná přípona

CA1712

Předpona není hodnoty výčtu s názvem typu

CA1713

Události by neměla před nebo po předpona

CA1714

Výčty příznaky by měly mít názvy v množném čísle.

CA1715

Identifikátory by měl mít správný prefix

CA1717

Pouze FlagsAttribute výčty by měly mít názvy v množném čísle

CA1719

Názvy parametrů by neodpovídají názvy členů

CA1720

Identifikátory nesmí obsahovat názvy typu

CA1721

Názvy vlastností by měl odpovídat není metody get

CA1722

Identifikátory by neměl mít nesprávnou předponu

CA1724

Zadejte jména by neodpovídají obory názvů

CA1725

Názvy parametrů by měly odpovídat základní prohlášení

CA1726

Použít upřednostňované podmínky

CA2204

Literály by měla být zadána správně