CA1002: 제네릭 목록을 노출하지 마십시오.
TypeName |
DoNotExposeGenericLists |
CheckId |
CA1002 |
범주 |
Microsoft.Design |
변경 수준 |
주요 변경 |
원인
형식에 System.Collections.Generic.List<T> 형식이거나, System.Collections.Generic.List<T> 형식을 반환하거나, 시그니처에 System.Collections.Generic.List<T> 매개 변수가 포함되어 있는, 외부에서 볼 수 있는 멤버가 포함되어 있습니다.
규칙 설명
System.Collections.Generic.List<T>은 상속이 아닌 성능을 위해 설계된 제네릭 컬렉션입니다.System.Collections.Generic.List<T>은 상속된 클래스의 동작을 쉽게 변경하는 가상 멤버를 포함하고 있지 않습니다.다음 제네릭 컬렉션은 상속을 위해 디자인되었으며 System.Collections.Generic.List<T> 대신 노출되어야 합니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 System.Collections.Generic.List<T> 형식을 상속을 위해 디자인된 제네릭 컬렉션 중 하나로 변경합니다.
경고를 표시하지 않는 경우
이 경고를 발생시킨 어셈블리를 재사용 가능한 라이브러리로 사용할 계획이 없는 경우에만 이 규칙에서 경고를 표시하지 마십시오.예를 들어, 제네릭 목록을 사용할 경우 성능상 이점이 생기는 성능 조정된 응용 프로그램에서는 이 경고를 표시하지 않아도 안전합니다.
관련 규칙
CA1005: 제네릭 형식에 매개 변수를 너무 많이 사용하지 마십시오.
CA1010: 컬렉션은 제네릭 인터페이스를 구현해야 합니다.
CA1000: 정적 멤버를 제네릭 형식으로 선언하지 마십시오.
CA1006: 멤버 시그니처에 제네릭 형식을 중첩하지 마십시오.
CA1004: 제네릭 메서드는 형식 매개 변수를 제공해야 합니다.
CA1003: 제네릭 이벤트 처리기 인스턴스를 사용하십시오.