최근에 다른 곳에서 *에 대한 내 견해를 밝혔지만 추가 분석이 필요하다고 생각하므로 자체 질문으로 게시하고 있습니다.IEnumerable과 같은 인터페이스 또는 List <>와 같은 구체적인 클래스를 사용해야합니까?
프로그램에서 컨테이너를 만들고 전달해야한다고 가정 해 보겠습니다. 적어도이 단계에서는 다른 종류의 컨테이너와 다른 컨테이너에 대해 강한 견해를 갖고 있지는 않지만 아마도 하나를 선택합니다. 논증의 목적으로 목록 <>을 사용한다고 가정 해 봅시다.
질문 : C#의 고수준 인터페이스를 수락하고 반환하는 방법을 쓰는 것이 더 좋습니까? IEnumerable? 또는 내가 선택한 특정 컨테이너 클래스를 가져와 전달하는 메서드를 작성해야합니다.
내가 결정할 요인과 기준은 무엇입니까? 어떤 종류의 프로그램이 하나 또는 다른 혜택을 누릴 수 있습니까? 컴퓨터 언어가 귀하의 결정에 영향을 줍니까? 공연? 프로그램 크기? 개인 스타일?
는 (심지어 중요합니까?)** (숙제 :.. 그것을 찾을하지만 내 자신을 찾아 전에 그렇게하지 편견 당신으로, 여기에 답변을 게시하시기 바랍니다) *
동의하지만, 거의 똑같은 질문을하고 있습니다. 내 코드가 IEnumerable을 사용하는 것을 어색하게 느끼기 때문입니다. List 대신 foos = fooQuery.GetFoos()를 사용하면 List foos = new List (fooQuery.GetFoos())가됩니다. 내가 놓친 게 있니? 아니면 유연성을 위해 우리가 지불하는 가격입니까? –
si618
위의 설명을 사용하는 예는 결과를 확인하려는 단위 테스트에 있습니다. IList.Count, 실제 사용법은 IList가 실제로 필요하지 않으며 IEnumerable만으로도 충분하지만 그냥 어색하다고 느낀다. – si618
@Si 나는 우리가 여기 다른 것들에 대해 이야기하고 있다고 생각한다. 이 질문은 메서드 내부의 영역에 관한 것입니다. 메소드 밖의 반환 유형 및 사용에 대해 설명합니다. –