Study/C#(2)
-
C# IEnumerator, IEnumerable
IEnumerator - 열거자 인터페이스 정의 IEnumerator 는 제네릭이 아닌 모든 열거자의 기본 인터페이스이다. 사용 현재 데이터를 반환하는 Current를 반환하는 함수를 구현한다. 현재 참조하고 있는 노드의 다음노드를 가르키고, 다음 노드가 존재하는지를 반환하는 함수를 구현한다. 컬렉션의 첫번째 요소를 가르키도록 하는 리셋 함수를 구현한다. IEnumerable 정의 제네릭이 아닌 컬렉션에서 단순하게 반복할 수 있도록 지원하는 열거자를 노출하도록 하는 인터페이스이다. 사용 IEnumerator 를 반환하는 GetEnumerator() 함수를 구현한다. 예시 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ..
2021.11.16 -
C# Generic Basic
Generics 정의 타입을 디자인 할 때가 아닌 클라이언트가 사용할 때 지정해주는 기술이다. 사용 메소드, 클래스 등에 유연성(재사용성)을 제공함과 동시에, 컴파일 타임에서의 타입 안정성을 제공한다. Object의 사용을 줄여 Boxing / Unboxing 으로 일어나는 자원의 소모를 막을 수 있다. 예시 오른쪽 코드를 보면, MyIntLinkedList 타입의 연결 리스트는 AddFirst에서 int 만을 받아와 노드를 생성하기 때문에 여러 타입을 제공할 수가 없다. 그러나 MyLinkedList 타입의 연결 리스트는 Generic을 사용했기 때문에 클라이언트가 원하는 타입으로 노드를 생성할 수 있고, 다른 타입의 데이터를 파라미터로 전달하려 하면 컴파일 타임에서 에러가 나게 된다.
2021.11.11