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

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

기본 디자인 지침 규칙에는 관리형 권장 규칙 규칙 집합의 모든 규칙이 포함됩니다.

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

규칙 설명
CA1000 정적 멤버를 제네릭 형식으로 선언하지 마세요.
CA1001 삭제 가능한 필드가 있는 형식은 삭제 가능해야 합니다.
CA1002 제네릭 목록을 노출하지 마세요.
CA1003 제네릭 이벤트 처리기 인스턴스를 사용하세요.
CA1004 제네릭 메서드는 형식 매개 변수를 제공해야 합니다.
CA1005 제네릭 형식에 매개 변수를 너무 많이 사용하지 마세요.
CA1006 멤버 시그니처에 제네릭 형식을 중첩하지 마세요.
CA1007 적합한 제네릭을 사용하세요.
CA1008 열거형에는 0 값이 있어야 합니다.
CA1009 이벤트 처리기를 제대로 선언하십시오.
CA1010 컬렉션은 제네릭 인터페이스를 구현해야 합니다.
CA1011 기본 형식을 매개 변수로 전달해 보세요.
CA1012 추상 형식에는 생성자를 사용하면 안 됩니다.
CA1013 더하기 및 빼기를 오버로드할 때 같음 연산자를 오버로드하세요.
CA1014 CLSCompliantAttribute로 어셈블리를 표시하세요.
CA1016 AssemblyVersionAttribute로 어셈블리 표시
CA1017 ComVisibleAttribute로 어셈블리를 표시하세요.
CA1018 AttributeUsageAttribute로 특성을 표시하세요.
CA1019 특성 인수의 접근자를 정의하세요.
CA1023 다차원 인덱서를 사용하지 마세요.
CA1024 적합한 속성을 사용하세요.
CA1025 반복 인수를 매개 변수 배열로 바꾸세요.
CA1026 기본 매개 변수를 사용하면 안 됩니다.
CA1027 열거형을 FlagsAttribute로 표시하세요.
CA1028 열거형 스토리지는 Int32여야 합니다.
CA1030 적절한 경우 이벤트를 사용하세요.
CA1031 일반적인 예외 형식을 catch하지 마세요.
CA1032 표준 예외 생성자를 구현하세요.
CA1033 인터페이스 메서드는 자식 형식에서 호출할 수 있어야 합니다.
CA1034 중첩 형식은 노출되면 안 됩니다.
CA1035 ICollection 구현에 강력한 형식의 멤버가 있습니다.
CA1036 비교 가능한 형식에 메서드를 재정의하세요.
CA1038 열거자는 강력한 형식이어야 합니다.
CA1039 목록은 강력한 형식이어야 합니다.
CA1041 ObsoleteAttribute 메시지를 제공하세요.
CA1043 인덱서에 정수 또는 문자열 인수를 사용하세요.
CA1044 속성은 쓰기 전용이면 안 됩니다.
CA1046 참조 형식에 같음 연산자를 오버로드하지 마세요.
CA1047 protected 멤버를 sealed 형식으로 선언하지 마세요.
CA1048 가상 멤버를 sealed 형식으로 선언하지 마세요.
CA1049 네이티브 리소스가 있는 형식은 삭제 가능해야 합니다.
CA1050 네임스페이스에 형식을 선언하세요.
CA1051 표시되는 인스턴스 필드를 선언하지 마세요.
CA1052 정적 소유자 형식은 sealed여야 합니다.
CA1053 정적 소유자 형식에는 생성자를 사용하면 안 됩니다.
CA1054 URI 매개 변수는 문자열이면 안 됩니다.
CA1055 URI 반환 값은 문자열이면 안 됩니다.
CA1056 URI 속성은 문자열이면 안 됩니다.
CA1057 문자열 URI 오버로드는 System.Uri 오버로드를 호출합니다.
CA1058 형식은 특정 기본 형식을 확장하면 안 됩니다.
CA1059 멤버는 구체적인 특정 형식을 노출하면 안 됩니다.
CA1060 P/Invoke를 NativeMethods 클래스로 이동
CA1061 기본 클래스 메서드를 숨기지 마십시오.
CA1063 IDisposable을 올바르게 구현하십시오.
CA1064 예외는 public이어야 합니다.
CA1065 예기치 않은 위치에서 예외를 발생시키지 마십시오.
CA1301 중복 액셀러레이터 키를 사용하지 마십시오.
CA1400 P/Invoke 진입점이 있어야 합니다.
CA1401 P/Invoke는 노출되지 않아야 합니다.
CA1403 자동 레이아웃 형식은 COM 노출이면 안 됩니다.
CA1404 P/Invoke 다음에 바로 GetLastError를 호출하십시오.
CA1405 COM 노출 형식의 기본 형식은 COM 노출이어야 합니다.
CA1410 COM 등록 메서드는 일치해야 합니다.
CA1415 P/Invoke를 올바르게 선언하십시오.
CA1500 변수 이름은 필드 이름과 달라야 합니다.
CA1502 지나치게 복잡하게 만들지 마세요.
CA1708 식별자에는 대/소문자만 다른 이름을 사용할 수 없습니다.
CA1716 식별자는 키워드와 달라야 합니다.
CA1801 사용되지 않은 매개 변수를 검토하세요.
CA1804 사용되지 않는 로컬 항목을 제거하세요.
CA1809 불필요한 로컬 항목을 사용하지 마세요.
CA1810 참조 형식 정적 필드를 인라인으로 초기화하세요.
CA1811 호출되지 않는 전용 코드를 사용하지 마세요.
CA1812 인스턴스화되지 않은 내부 클래스를 사용하지 마세요.
CA1813 봉인되지 않은 특성을 사용하지 마세요.
CA1814 다차원 배열보다 가변 배열을 사용하세요.
CA1815 값 형식에서 Equals 또는 같음 연산자 재정의를 참조하세요.
CA1819 속성은 배열을 반환해서는 안 됩니다.
CA1820 문자열 길이를 사용하여 빈 문자열을 테스트하세요.
CA1821 빈 종료자를 제거하십시오.
CA1822 멤버를 static으로 표시하세요.
CA1823 사용되지 않는 전용 필드를 사용하지 마세요.
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 절을 외부 try에 래핑하십시오.
CA2126 형식 링크 요청에는 상속 요청이 필요합니다.
CA2131 보안에 중요한 형식은 형식 동등에 참여할 수 없습니다.
CA2132 기본 생성자는 기본 형식의 기본 생성자 이상으로 중요해야 합니다.
CA2133 대리자는 투명도가 일관된 메서드에 바인딩되어야 합니다.
CA2134 메서드는 기본 메서드를 재정의할 때 일관된 투명도를 유지해야 합니다.
CA2137 투명 메서드에는 확인할 수 있는 IL만 포함되어야 합니다.
CA2138 투명 메서드는 SuppressUnmanagedCodeSecurity 특성을 사용하여 메서드를 호출해서는 안 됩니다.
CA2140 투명 코드는 보안에 중요한 항목을 참조해서는 안 됩니다.
CA2141 투명 메서드는 LinkDemands를 충족해서는 안 됩니다
CA2146 형식은 기본 형식 및 인터페이스 이상으로 중요해야 합니다.
CA2147 투명 메서드는 보안 어설션을 사용할 수 없습니다.
CA2149 투명 메서드는 네이티브 코드를 호출해서는 안 됩니다.
CA2200 스택 정보를 유지하도록 다시 throw하십시오.
CA2201 예약된 예외 형식을 발생시키지 마세요.
CA2202 개체를 여러 번 삭제하지 마십시오.
CA2205 Win32 API의 동일한 관리형 기능을 사용하세요.
CA2207 값 형식 정적 필드 인라인을 초기화하십시오.
CA2208 인수 예외를 올바르게 인스턴스화하세요.
CA2211 비상수 필드는 노출되면 안 됩니다.
CA2212 서비스 구성 요소를 WebMethod를 사용하여 표시하지 마십시오.
CA2213 삭제 가능한 필드는 삭제해야 합니다.
CA2214 재정의 가능한 메서드를 생성자에서 호출하지 마십시오.
CA2216 삭제 가능한 형식은 종료자를 선언해야 합니다.
CA2217 열거형을 FlagsAttribute로 표시하지 마세요.
CA2219 exception 절에서 예외를 발생시키지 마세요.
CA2220 종료자는 기본 클래스 종료자를 호출해야 합니다.
CA2221 종료자는 protected여야 합니다.
CA2222 상속된 멤버 노출 수준을 낮추지 마세요.
CA2223 멤버는 반환 형식 이외의 것도 달라야 합니다.
CA2224 같음 연산자를 오버로드할 때 Equals를 재정의하세요.
CA2225 연산자 오버로드에는 명명된 대체 항목이 있습니다.
CA2226 연산자에는 대칭 오버로드가 있어야 합니다.
CA2227 컬렉션 속성은 읽기 전용이어야 합니다.
CA2229 serialization 생성자를 구현하십시오.
CA2230 가변 인수로 params를 사용하세요.
CA2231 ValueType.Equals를 재정의할 때 같음 연산자를 오버로드하십시오.
CA2232 Windows Forms 진입점을 STAThread를 사용하여 표시하십시오.
CA2234 문자열 대신 System.Uri 개체를 전달하세요.
CA2235 모두 serialize할 수 없는 필드로 표시하십시오.
CA2236 ISerializable 형식에서 기본 클래스 메서드를 호출하십시오.
CA2237 SerializableAttribute로 ISerializable 형식 표시
CA2238 serialization 메서드를 올바르게 구현하십시오.
CA2239 선택적 필드에 deserialization 메서드를 제공하세요.
CA2240 ISerializable을 올바르게 구현하십시오.
CA2241 서식 지정 메서드에 올바른 인수를 제공하십시오.
CA2242 NaN에 대해 정확하게 테스트하십시오.