일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 도커
- jupyter lab
- Algorithm
- HTML
- github
- jupyter
- Python
- vim
- C# delegate
- Data Structure
- git
- 유니티
- docker
- c언어
- Houdini
- C언어 포인터
- 플러터
- dart 언어
- c#
- C++
- c# winform
- 다트 언어
- Unity
- 깃
- Flutter
- c# 추상 클래스
- c# 윈폼
- gitlab
- 포인터
- 구조체
Archives
- Today
- Total
목록c# IEnumerator T (1)
nomad-programmer
[Programming/C#] 일반화 클래스 : IEnumerable<T>, IEnumerator<T>
foreach를 사용할 수 있는 클래스를 만드려면 IEnumerable 인터페이스와 IEnumerator 인터페이스를 상속하고 이들에게 선언되어 있는 메소드와 프로퍼티를 구현해야 한다. 일반화 클래스도 IEnumerable과 IEnumerator 인터페이스를 상속하여 이들의 메소드와 프로퍼티를 구현하면 일반은 foreach를 통해 순회를 할 수 있지만, 요소를 순회할 때마다 형식 변환을 수행하는 오버로드가 발생한다는 문제가 있다. 성능을 위하여 기껏 일반화를 통해 형식 변환을 제거하였더니 foreach 구문에서 형식 변환을 일으켜 성능을 저하시키면 너무 바보 같은 일일것이다. System.Collections.Generic 네임스페이스에는 이 문제를 풀 수 있는 열쇠를 가지고 있다. 바로 IEnumera..
Programming/C#
2020. 9. 20. 04:08