다음을 통해 공유


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: 제네릭 이벤트 처리기 인스턴스를 사용하십시오.

CA1007: 적합한 제네릭을 사용하십시오.

참고 항목

참조

제네릭(C# 프로그래밍 가이드)