갓똥
나는야 프로그래머
갓똥
전체 방문자
오늘
어제
  • 분류 전체보기 (186)
    • 프로그래밍 (146)
      • 자바 (9)
      • 안드로이드 (2)
      • 유니티 (20)
      • C++ (38)
      • C# (56)
      • HTML (2)
      • 파이썬 (3)
      • 자료구조 (2)
      • 알고리즘 (0)
      • 문제풀이 (4)
      • 디자인 패턴 (7)
      • 카카오톡 봇 (1)
      • 엑셀 (1)
      • 기타 (1)
    • 게임 (21)
      • 테일즈위버 (0)
      • 카이로소프트 (1)
      • 순위 (19)
      • 기타 (1)
    • 일상 (13)
      • 카페 (1)
      • 방탈출 (12)
    • 기타 (6)
      • 웃긴자료 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • Unity Graph
  • 게임매출순위
  • c# unboxing
  • 게임 디자인 패턴
  • 유니티 그래프 그리기
  • 전세계게임매출순위
  • 글로벌게임매출
  • 유니티 그래프
  • C++
  • c# Thread
  • C++ 소멸자
  • c# 코루틴
  • 롤 골드그래프
  • 전세계 게임 매출
  • C# 예외 처리
  • c# coroutine
  • C++ 상속
  • C++ virtual
  • 모바일 게임 순위
  • 게임 매출 순위
  • 알고리즘
  • 2020년 게임 매출
  • C# boxing
  • c# collection
  • c# delegate
  • 강남 방탈출
  • pc 게임 순위
  • 자바
  • 유니티 골드그래프
  • pc게임 순위

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갓똥

나는야 프로그래머

[C#] Collection과 Interface
프로그래밍/C#

[C#] Collection과 Interface

2020. 4. 26. 15:27
728x90
반응형

1. 핵심 정리

using System;
using System.Collections.Generic;

clss Program {
    static void Main() {
        List<int> c1 = new List<int>();
        c1.Add(10);
        c1.Add(20);
        c1.Clear();
        int n = c1[0]; // IList<T>에 있는 메소드(인덱서)
        
        SortedSet<int> c2 = new SortedSet<int>();
        c2.Add(10);
        c2.Add(20);
        c2.Clear();
        int n2 = c2[0]; // error
    }
}

 

위의 코드에서 List는 동적배열이고 SortedSet은 트리구조이다.
분명 내부적으로 데이터를 다루는 코드는 다를텐데 요소를 추가하는 메소드는 Add로 같다.
또한 모든 요소를 지우는 Clear메소드도 같다.
다른 구조를 가지지만 메소드 이름이 같으니 쓰기 편한점이 있다.
이처럼 컬렉션을 만들 때 직접 만들기보단 interface기반으로 설계를 하면 좋을 것이다.

 ① 서로 다른 컬렉션에 있는 동일한 기능을 수행하는 메소드는 동일한 이름을 사용하는 것이 좋다.

    => interface 기반 설계

 

 ② Collection 관련 주요 인터페이스(Generic)

 

위의 두가지 구조 중 List의 경우 IList<T> 인터페이스를 구현했지만
SortedSet의 경우 IList<T> 인터페이스를 받지 않았다.
따라서 List는 배열과 같이 10번 라인과 같이 쓸 수 있지만
SortedSet은 16번 라인과 같이 에러가 난다.
728x90
반응형

'프로그래밍 > C#' 카테고리의 다른 글

[C#] Collection Method  (0) 2020.04.27
[C#] 열거자 (Enumerator)  (0) 2020.04.26
[C#] 컬렉션 (Collection)  (0) 2020.04.23
[C#] try ~ finally  (0) 2020.04.21
[C#] 예외 필터 (exception filter)  (0) 2020.04.20
    '프로그래밍/C#' 카테고리의 다른 글
    • [C#] Collection Method
    • [C#] 열거자 (Enumerator)
    • [C#] 컬렉션 (Collection)
    • [C#] try ~ finally
    갓똥
    갓똥
    공부하며 알아가는 내용을 정리해 봅니다.

    티스토리툴바