여기에 프로젝트 실행 코드 분석을 실행하려고 (CA1002은 일반 목록을 노출하지 마십시오),이 같은 것을 경고의 수를 가지고 :C 번호 : 목록 <T>와 컬렉션 <T>의 차이
을 CA1002 : Microsoft.Design : 변경 '목록 < SomeType>' 'SomeClass.SomeProtectedOrPublicProperty'컬렉션, ReadOnlyCollection를 사용하거나 KeyedCollection
ㅁ에서 y List<T>
대신 Collection<T>
을 사용해야합니까? 내가 msdn 문서를 볼 때, 그들은 거의 같다. 경고에 대한 오류 도움을 읽은 후, 나는 성능을 발휘하도록 설계 일반적인 수집 _is
System.Collections.Generic.List (T)에 따라서 가상 멤버를 포함하지 않는, 상속이 아닌 것을 발견했다.
하지만 이것은 실제로 무엇을 의미합니까? 그리고 내가 대신해야 할 일은 무엇입니까?
내부적으로 List<T>
을 계속 사용해야하고 속성에서 new Collection<T>(someList)
을 대신 반환해야합니까? 또는 List<T>
대신 Collection<T>
을 사용하기 시작해야합니까?
[이 블로그 게시물] (http://blogs.msdn.com/fxcop/archive/2006/04/27/585476)을 참조하십시오.aspx)에 대한 자세한 설명 –
덧붙여 말하자면 Collection이 [System.Collections.ObjectModel에있는 이유를 알고 싶다면] (http://blogs.msdn.com/kcwalina/archive/2005/03/15/396086) .aspx)에 의해 Krzysztof Cwalina. –