다음을 통해 공유


관리 코드에 대한 기본 디자인 지침 규칙 규칙 집합

Microsoft 기본 디자인 지침 규칙이라는 규칙 집합을 사용하면 코드를 보다 쉽게 이해하고 사용할 수 있게 만드는 데 초점을 맞출 수 있습니다.프로젝트에 라이브러리 코드가 있거나 유지 관리하기 쉬운 코드를 만들기 위해 모범 사례를 적용하려는 경우 이 규칙 집합을 포함해야 합니다.

기본 디자인 지침 규칙에는 Microsoft 최소 권장 규칙이라는 규칙 집합의 규칙이 모두 포함됩니다.최소 규칙의 목록을 보려면 관리 코드에 대한 관리 권장 규칙 규칙 집합을 참조하십시오.

다음 표에서는 Microsoft 기본 디자인 지침 규칙 집합의 모든 규칙에 대해 설명합니다.

규칙

설명

CA1001

삭제 가능한 필드가 있는 형식은 삭제 가능 해야 합니다.

CA1009

이벤트 처리기를 제대로 선언 하십시오.

CA1016

AssemblyVersionAttribute 어셈블리 표시

CA1033

인터페이스 메서드는 자식 형식에서 호출할 수 있어야 합니다.

CA1049

네이티브 리소스가 있는 형식은 삭제 가능 해야 합니다.

CA1060

P/Invoke를 NativeMethods 클래스로 이동

CA1061

기본 클래스 메서드를 숨기지 마십시오

CA1063

Idisposable을 올바르게 구현

CA1065

예기치 않은 위치에서 예외를 발생 시 키 지 마십시오

CA1301

중복 된 액셀러레이터를 방지 합니다.

CA1400

P/Invoke 진입점이 존재 해야

CA1401

P/Invoke 볼 수 없습니다.

CA1403

자동 레이아웃 형식은 COM에서 볼 수 없습니다.

CA1404

바로 P/Invoke 후 Getlasterror를 호출 합니다.

CA1405

COM 노출 형식의 기본 형식은 COM 노출 이어야 합니다.

CA1410

COM 등록 메서드는 일치 해야 합니다.

CA1415

P/Invoke를 제대로 선언 하십시오.

CA1821

빈 종료자를 제거 합니다.

CA1900

값 형식 필드는 이식 가능 해야 합니다.

CA1901

P/Invoke 선언은 이식 가능 해야 합니다.

CA2002

약한 id 가진 개체를 잠그지 않음

CA2100

SQL 쿼리 보안 문제에 대 한 검토

CA2101

P/Invoke 문자열 인수에 대해 마샬링을 지정합니다

CA2108

값 형식에서 선언적 보안을 검토 합니다.

CA2111

포인터가 볼 수 없습니다.

CA2112

보안된 형식은 필드를 노출 하면

CA2114

메서드 보안은 형식의 상위 집합 이어야 합니다.

CA2116

APTCA 메서드는 APTCA 메서드를 호출 하면

CA2117

APTCA 형식은 APTCA 기본 형식을 확장 합니다.

CA2122

링크 요청이 있는 메서드를 간접적으로 노출 하지 마십시오.

CA2123

재정의 링크 요청 기반으로 동일 해야 합니다.

CA2124

랩 공격에 취약 한 finally 절 외부에서 보십시오.

CA2126

형식 링크 요청 상속 요청이 필요합니다.

CA2131

중요 한 보안 형식을 형식 등가에 참가할 수 없습니다.

CA2132

기본 생성자가 기본 형식의 기본 생성자에는 적어도 중요 해야

CA2133

대리자 메서드를 일관성 있게 투명 하 게 바인딩해야 합니다.

CA2134

메서드가 기본 메서드를 재정의 하는 경우 일관 된 투명도 유지 합니다.

CA2137

투명 한 방법을 확인할 수 있는 IL만 있어야 합니다.

CA2138

투명 한 방법을 SuppressUnmanagedCodeSecurity 특성을 갖는 메서드를 호출 해야

CA2140

중요 한 항목을 보안 투명 코드를 참조 하지 않아야

CA2141

Linkdemands가 투명 한 방법 만족 해야 하지

CA2146

형식은 해당 기본 형식 및 인터페이스는 적어도 중요 해야 합니다.

CA2147

보안 투명 메서드 수 어설션

CA2149

투명 메서드의 네이티브 코드를 호출 해서는 안

CA2200

스택 정보를 유지 하도록 다시 throw 하십시오.

CA2202

개체는 여러 번 삭제 하지 마십시오.

CA2207

값 형식의 정적 필드를 인라인으로 초기화

CA2212

서비스 되는 구성 요소를 WebMethod 표시 하지 않음

CA2213

삭제 가능한 필드는 삭제 해야 합니다.

CA2214

생성자에 재정의 가능한 메서드를 호출 하지 마십시오.

CA2216

삭제 가능한 형식은 종료자를 선언 해야 합니다.

CA2220

종료자는 기본 클래스 종료자 호출 해야

CA2229

Serialization 생성자를 구현 합니다.

CA2231

Valuetype.equals를 재정의에 같음 연산자를 오버 로드 합니다.

CA2232

표시 Windows Forms 진입점을 STAThread

CA2235

Serializable 이외의 모든 필드를 표시 합니다.

CA2236

ISerializable 형식에 기본 클래스 메서드를 호출 합니다.

CA2237

Serializableattribute로 ISerializable 표시 형식

CA2238

Serialization 메서드를 올바르게 구현

CA2240

Iserializable을 올바르게 구현

CA2241

형식 메서드에 올바른 인수를 제공 합니다.

CA2242

Nan에 대해 정확 하 게 테스트

CA1000

제네릭 형식에서 정적 멤버를 선언 하지 마십시오

CA1002

제네릭 목록을 노출 하지 마십시오

CA1003

제네릭 이벤트 처리기 인스턴스를 사용 합니다.

CA1004

제네릭 메서드의 형식 매개 변수를 제공 해야

CA1005

과도 한 제네릭 형식 매개 변수를 방지 합니다.

CA1006

멤버 시그니처에 제네릭 형식을 중첩 하지 마십시오.

CA1007

Generics를 사용 하 여 해당 되는 경우

CA1008

열거형 값이 0 이면 있어야 합니다.

CA1010

컬렉션은 제네릭 인터페이스를 구현 해야

CA1011

기본 형식을 매개 변수로 전달 하는 것이 좋습니다.

CA1012

추상 형식 생성자를 사용 해야 합니다.

CA1013

더하기 및 빼기를 오버 로드할 때 오버 로드 연산자 같음

CA1014

마크 어셈블리에 CLSCompliantAttribute

CA1017

ComVisibleAttribute 어셈블리 표시

CA1018

AttributeUsageAttribute 사용 하 여 표시 특성

CA1019

특성 인수의 접근자를 정의 합니다.

CA1023

인덱서에 다차원 이어야 합니다.

CA1024

해당 되는 경우 속성을 사용 합니다.

CA1025

반복 인수를 매개 변수 배열로 바꿉니다

CA1026

기본 매개 변수를 사용할 수 없습니다.

CA1027

열거형을 Flagsattribute로 표시

CA1028

열거형 저장소는 i n t 32 여야 합니다.

CA1030

이벤트를 사용 하 여 해당 되는 경우

CA1031

일반 예외 형식을 catch 하지 마십시오.

CA1032

표준 예외 생성자를 구현 합니다.

CA1034

중첩된 형식은 노출 하지 마십시오.

CA1035

ICollection 구현 멤버를 강력 하 게 형식화 된

CA1036

비교 가능한 형식에 메서드를 재정의 합니다.

CA1038

열거자는 강력한 형식 이어야 합니다.

CA1039

목록은 강력한 형식

CA1041

ObsoleteAttribute 메시지를 제공 합니다.

CA1043

인덱서에 정수 또는 문자열 인수를 사용 합니다.

CA1044

쓰기 전용 속성 수 없습니다.

CA1046

참조 형식에 같음 연산자를 오버 로드 하지 않습니다

CA1047

보호 된 멤버를 sealed 형식으로 선언 하지 마십시오.

CA1048

Sealed 형식에 가상 멤버를 선언 하지 마십시오.

CA1050

네임 스페이스에 형식을 선언 합니다.

CA1051

표시 되는 인스턴스 필드를 선언 하지 마십시오.

CA1052

정적 소유자 형식은 sealed 여야 합니다.

CA1053

정적 소유자 형식은 생성자를 사용 해야 합니다.

CA1054

URI 매개 변수는 문자열이 면 안 됩니다 없습니다.

CA1055

URI 반환 값은 문자열이 면 해야 합니다.

CA1056

URI 속성은 문자열이 면 해야 합니다.

CA1057

문자열 URI 오버 로드는 System.Uri 오버 로드 호출

CA1058

형식은 특정 기본 형식을 확장 해서는 안

CA1059

멤버는 구체적인 특정 형식을 노출 하면 안

CA1064

예외는 공용 이어야 합니다.

CA1500

변수 이름은 필드 이름과 달라 야 합니다.

CA1502

지나치게 복잡 하 게를 하지 마십시오.

CA1708

식별자 대/소문자가 다를 해야

CA1716

식별자는 키워드 달라 야 합니다.

CA1801

사용 되지 않는 매개 변수를 검토 합니다.

CA1804

사용 되지 않는 로컬 항목을 제거

CA1809

불필요 한 로컬 항목을 방지

CA1810

참조 형식 정적 필드를 인라인으로 초기화

CA1811

호출 되지 않는 전용 코드를 방지 합니다.

CA1812

인스턴스화되지 않은 내부 클래스를 방지 합니다.

CA1813

봉인 되지 않은 특성을 방지

CA1814

가변된 배열은 다차원 보다 선호

CA1815

우선 적용과 같고 값 형식에 같음 연산자

CA1819

속성은 배열을 반환 해야 합니다.

CA1820

문자열 길이 사용 하 여 문자열이 비었는지 테스트

CA1822

정적 멤버로 표시

CA1823

사용 되지 않는 전용 필드를 방지 합니다.

CA2201

예약 된 예외 형식을 발생 시 키 지 마십시오

CA2205

Win32 API의 관리 되는 동등 항목을 사용

CA2208

인수 예외를 올바르게 인스턴스화 하십시오.

CA2211

비상수 필드는 노출 되 면 안

CA2217

열거형을 Flagsattribute로 표시 하지 않음

CA2219

예외 절에서 예외를 발생 시 키 지 마십시오

CA2221

종료자를 보호 합니다.

CA2222

상속 된 멤버 노출 수준을 낮추지 마십시오.

CA2223

두 개 이상 반환 형식 멤버가 달라 야

CA2224

재정의 같음 연산자를 오버 로드할 때 equals

CA2225

연산자 오버 로드에 명명 된 대체 항목이 있습니다.

CA2226

연산자는 대칭 오버 로드가 있어야 합니다.

CA2227

컬렉션 속성 읽기 전용

CA2230

가변 인수를 사용 하는 매개 변수

CA2234

문자열 대신 System.Uri 개체를 전달 합니다.

CA2239

선택적 필드에 대 한 deserialization을 수행 하는 방법을 제공합니다