Microsoft MVP성태의 닷넷 이야기
ArrayList, IList에 대해 질문 있습니다. [링크 복사], [링크+제목 복사],
조회: 14701
글쓴 사람
한예지 donator
홈페이지
첨부 파일
 

선생님 안녕하세요!

몇몇 코드가 아래와 같이 ArrayList를 IList로 업캐스팅하던데 혹시 장점이 있나요?

IList observers = new ArrayList();
observers.Add();

ArrayList가 IList를 구현했기 때문에 굳이 업캐스팅 해서 Add 함수를 사용할 이유가 없어서 보입니다...

만약 매개변수 타입을 IList로 하면 IList를 구현한 애들을 모두
받을 수 있어서 좋기는 하지만 위와 같이 개체 생성 시 ArrayList를 IList로 업캐스팅하면 혹시 어떤 장점이 있을까요?








[최초 등록일: ]
[최종 수정일: 6/18/2021]


비밀번호

댓글 작성자
 



2021-06-18 09시49분
단순히 코드 내에서 그렇게 하는 것은 딱히 의미가 없습니다. 그냥 개인 취향이라고 보시면 됩니다.

말씀하신 것처럼, 메서드의 인자 타입을 ArrayList보다는 IList로, 메서드의 반환 타입을 IList보다는 ArrayList로 정의하는 식은 의미가 있습니다. 이에 대해서는 다음의 글을 참고하세요.

https://www.sysnet.pe.kr/2/0/11513#ret_arg_type
정성태
2021-06-19 11시24분
[한예지] 쉬운 답변 정말 감사드립니다!!!
[guest]
2021-06-22 12시03분
[ryujh] 안녕하세요.
질문하신 분께서 마지막에 'IList를 구현한 애들을 모두 받을 수 있어서' 라고 말씀 하신 것과 비슷한 장점이 있는데

업무에 따라 ArrayList 만 필요한 것이 아닌 비슷한 List 도 필요할 수 있고 List에 공통된 기능이 Add,Remove 일겁니다.
Add,Remove 등 공통 기능이 IList 를 통해 구현했을 것입니다.

타입마다 함수를 만든다면 add,remove하는 코드가 함수마다 중복될 수도 있으니 IList 를 매개변수로 한다면 함수 개수가 줄어들 것입니다.

질문의 내용은 observers 를 다른 함수로 넘겨서 IList 인터페이스 통한 기능만 사용하기 위한 것으로 보면 되겠습니다.
[guest]

... 76  77  78  79  80  81  82  83  84  85  86  [87]  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
298정말초짜1/12/200610829smart client 질문입니다. [1]
296우승우1/4/200610493스마트클라이언트에서 COM+를 이용한 데이터 가져 오기..
297정성태1/4/200612481    답변글 [답변]: 스마트클라이언트에서 COM+를 이용한 데이터 가져 오기.. [2]
295이경호12/22/200510793스마트 클라이언트 관련 고견을 듣고자 합니다. [1]
294김성국12/21/200512703^^ 오늘 첨 방문했습니다. [2]
292궁금해요12/16/200511821c#으로 개발된 ie 임베디드 smart client를 php페이지에서 사용이 가능한가요?
293정성태12/21/200512449    답변글 [답변]: c#으로 개발된 ie 임베디드 smart client를 php페이지에서 사용이 가능한가요?
290이종은12/16/200519318개체가 이 속성 또는 메서드를 지원하지 않습니다. [3]
289이진우12/14/200513071스마트 클라이언트 개념.. [1]
288박찬용12/13/200512121질문 한개만 할께요.. 아시면 꼭 답변 부탁드려요 [1]
287꼬마마법...12/13/200512798안녕하세요..죄송합니다. 다시 한번 봐주시면.. 감사 드리겠습니다. [2]
286정준명12/12/200512507윈폼 관리(?)에 대한 고민. [1]
285꼬마마법사12/10/200511049안녕하세요.. [1]
284코디12/8/200511352[질문] 스마트클라이언트 다운로드중에...... [1]
283foot...12/7/200510866스마트 클라이언트 질문 입니다. ㅜㅜ [2]
279박상규12/6/200511642스마트 클라이언트에 관해 질문좀 드릴께요..
280정성태12/6/200511452    답변글 [답변]: 스마트 클라이언트에 관해 질문좀 드릴께요..
281박상규12/7/200512725        답변글 [답변]: [답변]: 스마트 클라이언트에 관해 질문좀 드릴께요.. [2]
282정성태12/7/200511265            답변글 [답변]: [답변]: [답변]: 스마트 클라이언트에 관해 질문좀 드릴께요..
276하수12/2/200511043스마트 클라이언트 프로그램을 만들려면.. [1]
271정준명11/20/200513117스마트클라이언트 구현에 대해서 조언을 듣고자 합니다. [5]
269상수11/18/200511341vs2005를 사용하고 있습니다. [1]
270상수11/18/200510797    답변글 [답변]: vs2005를 사용하고 있습니다. [1]파일 다운로드1
272상수11/21/200510296        답변글 [답변]: [답변]: ㅈㅅ여.. 인터넷이 사용이 안돼서리..dll을 치면 나타나는 현상 [1]
268상수11/17/200510487vs2005를 사용하고 있는데.. [1]
26711/16/200511971COM+ 의 활성화 상태... [1]
... 76  77  78  79  80  81  82  83  84  85  86  [87]  88  89  90  ...