티스토리 뷰
IEnumerable와 IEnumerator :
C++의 Iterator와 같은 반복자에 대해서 C#에서 제공하는 인터페이스 세트
IEnumerable :
IEnumerator GetEnumerator() 함수를 구현하도록 요구하는 인터페이스
interface IEnumerable
{
IEnumerator GetEnumerator();
}
IEnumerable 인터페이스에는 foreach 구문에서 필요한 멤버들을 약속한 IEnumerator 형식의 객체를 반환하는 GetEnumerator() 함수를 제공하고 있다.
IEnumerator :
foreach 구문 사용을 위해 필수적으로 구현해야 하는 인터페이스
interface IEnumerator
{
bool MoveNext();
void Reset();
Object Current { get; }
}
IEnumerator 인터페이스는 foreach 구문에 필요한 3가지 멤버들로 구성되어 있다.
MoveNext() | 열거자를 컬렉션의 다음 요소로 이동 |
Reset() | 컬렉션의 첫번째 위치에 있는 요소 앞에 열거자를 설정 |
Current | 컬렉션의 현재 요소 반환 |
따라서 위 인터페이스에 따르는 형식의 클래스라면 foreach문을 사용하여 반복자를 구현할 수 있다.
또한 yield 키워드를 사용하여 IEnumerable나 IEnumerator 형으로 값을 변환시켜 반환하거나 중지시킨다.
yield :
호출자에게 컬렉션 데이터를 하나씩 리턴할 수 있도록 하는 키워드
yield return | 컬렉션 요소를 하나씩 리턴 |
yield break | 리턴을 중지하여 반복문에서 벗어남 |
호출자가 yield return 구문이 있는 메서드를 실행하면 yield return 까지만 실행하여 하나의 요소를 리턴한 뒤 다음에 다시 실행될 때 다음 부분부터 실행된다.
'Programming > C#' 카테고리의 다른 글
[C#] 자동으로 그림 그려주는 프로그램 개발 (9) | 2019.06.03 |
---|---|
[C#] Youtube 영상 변환 및 다운로드 프로그램 개발 (1) | 2019.04.08 |
[C#] 오픈소스 FPS 게임 에임봇 개발 (0) | 2019.01.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Unity
- 유니티
- 안드로이드 멘토링
- Level 04
- reversing.kr
- Basic RCE
- ftz
- Level 03
- pwnable
- Level 01
- c++
- 멘토링
- Write-up
- Level 05
- 17th HackingCamp CTF
- HackingCamp
- Programming
- Reversing
- hackerschool
- xcz.kr
- Advance RCE
- wargame
- 풀이
- Android
- Level 02
- CodeEngn
- Level 06
- unity2d
- 안드로이드
- C#
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
글 보관함