2017-10-20 16 views
1

List를 메서드의 인수로 사용하려는 경우 Resharper는 IList 인터페이스를 사용하는 것이 더 좋습니다. List를 IList로 바꾸면 Resharper는 IEnumerable을 제안합니다. 자바에서는 또한 List 인터페이스를 사용하고 ArrayList는 인수로 사용하지 않습니다. 하지만 iEnumerable을 인수로 사용하는 것이 정말 좋은 코드입니까? IList 또는 List의 기능이 필요하지 않은 경우 IEnumerable을 사용하는 것이 좋습니다. 여기IList 또는 IEnumerable을 인수로 사용합니다.

+1

* "IList 또는 List의 기능이 없으면 IEnumerable을 사용하는 것이 좋습니다?"- 예. –

+0

네가 배열이나 게으른로드 된 Linq 쿼리처럼 전달할 수있는 것을 열어주기 때문에 네. – juharr

+0

재사용 할 수있는 방법을 제공하는 것이 좋습니다. 모든 제네릭 컬렉션의 기본 인터페이스를 요청하면 목록뿐만 아니라 다양한 유형의이 메서드를 사용할 수 있습니다. 'IList '는리스트와 배열을 다루지 만,'IList '의 메소드가 필요 없다면'IEnumerable '을 사용할 수 있습니다. –

답변

5

는 대답에

그래서 가장 구체적인 형식을 반환, 내가 모두 그것에 대해 내 마음을 바꿀 만들어 내게

의 원칙 가장 일반적인 유형을 다음 시작했다 the article입니다 귀하의 질문

IList 또는 List 기능이 필요하지 않은 경우 IEnumerable을 사용하는 것이 좋습니다.

네,

노트는 다음과 같습니다 이상하지 마! IEnumerable을 허용하는 코드를 본 다음 매개 변수가 List이 아닌 경우 예외를 던졌습니다. 이것은 바보입니다. 위에 인용 한 문장의 의미는 "필요한 것보다 더 구체적인 것을 요구하지 마십시오"입니다.