Sdílet prostřednictvím


Základní návrh pravidel obecné pravidlo pro spravovaný kód

Pro zjednodušení pochopení a použití kódu je možné použít sadu pravidel Základní pravidla obecných zásad návrhu společnosti Microsoft.Je vhodné tuto sadu pravidel použít pokud projekt obsahuje kód knihovny nebo pokud je potřeba zajistit doporučené postupy pro jednodušší udržovatelnost kódu.

Základní pravidla obecných zásad návrhu obsahují všechna pravidla v sadě pravidel Minimální doporučená pravidla společnosti Microsoft.Seznam minimálních pravidel je uveden v Spravované doporučená pravidla sadu pravidel pro spravovaný kód.

Následující tabulka popisuje všechna pravidla v sadě pravidel Základní pravidla obecných zásad návrhu společnosti Microsoft.

Pravidlo

Description

CA1001

Typy, které vlastní uvolnitelná pole, by měly být uvolnitelné

CA1009

Deklarujte správně ovladače událostí

CA1016

Označte sestavení pomocí AssemblyVersionAttribute

CA1033

Metody rozhraní by měly být volatelné podřízenými typy

CA1049

Typy, které vlastní nativní prostředky, by měly být uvolnitelné

CA1060

Přesuňte volání nespravovaných kódů do třídy NativeMethods

CA1061

Neskrývejte metody základní třídy

CA1063

Implementuje správně IDisposable

CA1065

Nevyvolávejte výjimky v neočekávaných umístěních

CA1301

Vyhněte se duplicitním akcelerátorům

CA1400

Vstupní body volání nespravovaného kódu by měly existovat

CA1401

Volání nespravovaných kódů by neměla být viditelná

CA1403

Typy automatického rozložení by neměly být viditelné modelu COM

CA1404

Volejte GetLastError ihned po volání nespravovaného kódu

CA1405

Základní typy viditelného typu modelu COM by měly být viditelné modelu COM

CA1410

Metody registrace modelu COM by si měly odpovídat

CA1415

Deklarujte správně volání nespravovaných kódů

CA1821

Odstraňte prázdné finalizační metody

CA1900

Pole hodnotového typu by měla být přenosná

CA1901

Deklarace volání nespravovaného kódu by měla být přenosná

CA2002

Nepoužívejte zámky na objekty se slabou identitou

CA2100

Zkontrolujte dotazy SQL pro chyby zabezpečení

CA2101

Určete zařazování pro argumenty řetězce volání nespravovaného kódu

CA2108

Zkontrolujte deklarativní zabezpečení na hodnotových typech

CA2111

Ukazatele by neměly být viditelné

CA2112

Zabezpečené typy by neměly vystavovat pole

CA2114

Zabezpečení metody by mělo být nadmnožinou typu

CA2116

Metody APTCA by měly volat pouze metody APTCA

CA2117

Typy APTCA by měly rozšiřovat pouze základní typy APTCA

CA2122

Nezveřejňujte nepřímo metody s požadavky propojení

CA2123

Požadavky odkazu přepisu by měly být shodné se základem

CA2124

Zabalte ohrožené klauzule finally do vnějšího bloku try

CA2126

Požadavky propojení typů vyžadují požadavky dědičnosti

CA2131

Důležité typy zabezpečení se nemusí účastnit rovnocennosti typu

CA2132

Výchozí konstruktory musí být alespoň tak kritické jako výchozí konstruktory základního typu

CA2133

Delegáti musí navázat na metody s konzistentní transparentností

CA2134

Metody musí při přepisu základních metod zachovat konzistentní transparentnost

CA2137

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

CA2138

Transparentní metody nesmí volat metody s atributem SuppressUnmanagedCodeSecurity

CA2140

Transparentní kód nesmí odkazovat na důležité položky zabezpečení

CA2141

Transparentní metody nesmí splňovat LinkDemands

CA2146

Typy musí být alespoň tak kritické jako jejich rozhraní a základní typy

CA2147

Transparentní metody nemohou používat bezpečnostní vyhodnocení

CA2149

Transparentní metody nesmí volat do nativního kódu

CA2200

Znovu vyvolejte výjimku pro zachování podrobností zásobníku

CA2202

Neuvolňujte objekty několikrát

CA2207

Statická pole hodnotového typu inicializujte vloženým kódem

CA2212

Neoznačujte obsluhované komponenty pomocí WebMethod

CA2213

Uvolnitelná pole by měla být uvolněna

CA2214

Nevolejte přepisovatelné metody v konstruktorech

CA2216

Uvolnitelné typy by měly deklarovat finalizační metodu

CA2220

Finalizační metody by měly volat finalizační metodu základní třídy

CA2229

Implementujte konstruktory serializace

CA2231

Je třeba přetížit operátor rovnosti při přetížení ValueType.Equals

CA2232

Označte vstupní body modelu Windows Forms pomocí STAThread

CA2235

Označte všechna neserializovatelná pole

CA2236

Volejte metody základní třídy na typech ISerializable

CA2237

Označte typy ISerializable pomocí SerializableAttribute

CA2238

Implementujte správně metody serializace

CA2240

Implementujte správně rozhraní ISerializable

CA2241

Poskytněte správné argumenty metodám formátování

CA2242

Testujte správně hodnotu NaN

CA1000

Nedeklarujte statické členy v obecných typech

CA1002

Nezveřejňujte obecné seznamy

CA1003

Použijte instance obecných obslužných rutin události

CA1004

Obecné metody by měly poskytnout parametr typu

CA1005

Vyhněte se nadbytečným parametrům na obecných typech

CA1006

Nevnořujte obecné typy v signaturách členu

CA1007

Použijte obecné typy, kde je to vhodné

CA1008

Výčty by měly mít nulovou hodnotu

CA1010

Kolekce by měly implementovat obecné rozhraní

CA1011

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

CA1012

Abstraktní typy by neměly mít konstruktory

CA1013

Je třeba přetížit operátor rovnosti při přetížení sčítání a odečítání

CA1014

Označte sestavení pomocí CLSCompliantAttribute

CA1017

Označte sestavení pomocí ComVisibleAttribute

CA1018

Označte atributy pomocí AttributeUsageAttribute

CA1019

Definujte přístupové objekty pro argumenty atributu

CA1023

Indexery by neměly být multidimenzionální

CA1024

Použijte vlastnosti, kde je to vhodné

CA1025

Nahraďte opakované argumenty polem parametrů

CA1026

Výchozí parametry by neměly být použity

CA1027

Označte výčty pomocí FlagsAttribute

CA1028

Úložiště výčtu by mělo být typu Int32

CA1030

Použijte události, kde je to vhodné

CA1031

Nezachycujte výjimky obecného typu

CA1032

Implementuje standardní konstruktory výjimek

CA1034

Vnořené typy by neměly být viditelné

CA1035

Implementace rozhraní ICollection mají členy silného typu

CA1036

Přepište metody srovnatelných typů

CA1038

Enumerátory by měly být silného typu

CA1039

Seznamy jsou silného typu

CA1041

Poskytněte zprávu ObsoleteAttribute

CA1043

Použijte celočíselný nebo řetězcový argument pro indexery

CA1044

Vlastnosti by neměly být určené pouze pro zápis

CA1046

Nepřetěžujte operátory rovnosti na odkazových typech

CA1047

Nedeklarujte chráněné členy v zapečetěných typech

CA1048

Nedeklarujte virtuální členy v zapečetěných typech

CA1050

Deklarujte typy v oborech názvů

CA1051

Nedeklarujte viditelná instanční pole

CA1052

Statický vlastník typů by měl být zapečetěný

CA1053

Statický vlastník typů by neměl mít konstruktory

CA1054

Parametry identifikátoru URI by neměly být řetězce

CA1055

Návratové hodnoty identifikátoru URI by neměly být řetězce

CA1056

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

CA1057

Řetězcové přetížení identifikátoru URI volá přetížení System.Uri

CA1058

Typy by neměly rozšířit určité základní typy

CA1059

Členy by neměly zveřejňovat určité konkrétní typy

CA1064

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

CA1500

Názvy proměnných by neměly odpovídat názvům polí

CA1502

Vyhněte se nadměrné složitosti

CA1708

Identifikátory by se měly lišit o více než použití malý a velkých písmen

CA1716

Identifikátory by neměly odpovídat klíčovým slovům

CA1801

Zkontrolujte nepoužité parametry

CA1804

Odeberte nepoužívané místní hodnoty

CA1809

Vyhněte se nadměrnému použití místních hodnot

CA1810

Inicializujte statická pole referenčních typů vloženým kódem

CA1811

Vyhněte se nevolanému místnímu kódu

CA1812

Vyhněte se nevytvořeným instancím vnitřních tříd

CA1813

Vyhněte se nezapečetěným atributům

CA1814

Preferujte vícenásobná pole před multidimenzionálními

CA1815

Přepište metodu a operátor rovnosti na hodnotových typech

CA1819

Vlastnosti by neměly vracet pole

CA1820

Testujte prázdné řetězce pomocí délky řetězce

CA1822

Označte členy jako statické

CA1823

Vyhněte se nepoužitým soukromým polím

CA2201

Nevyvolávejte vyhrazené typy výjimek

CA2205

Použijte spravované ekvivalenty rozhraní Win32 API

CA2208

Vytvořte správně instance výjimky argumentu

CA2211

Nekonstantní pole by neměla být viditelná

CA2217

Neoznačujte výčty pomocí FlagsAttribute

CA2219

Nevyvolávejte výjimky v klauzulích pro zpracování výjimek

CA2221

Finalizační metody by měly být chráněné

CA2222

Nesnižujte viditelnost zděděných členů

CA2223

Členy by se měly lišit o více než jen návratový typ

CA2224

Přepište metodu rovnosti při přetížení operátoru rovnosti

CA2225

Přetížení operátoru mají pojmenované alternativy

CA2226

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

CA2227

Vlastnosti vracející kolekce by měly být určeny pouze pro čtení

CA2230

Použijte parametry pro proměnné argumenty

CA2234

Předejte objekty System.Uri namísto řetězců

CA2239

Poskytněte metody deserializace pro volitelná pole