일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Flutter
- gitlab
- docker
- 포인터
- Unity
- Python
- jupyter lab
- 플러터
- c언어
- git
- 구조체
- C# delegate
- 다트 언어
- c# winform
- c# 추상 클래스
- 도커
- 유니티
- Houdini
- c#
- vim
- C++
- C언어 포인터
- jupyter
- github
- Data Structure
- HTML
- c# 윈폼
- 깃
- Algorithm
- dart 언어
- Today
- Total
목록형식 매개 변수 (2)
nomad-programmer
일반화 메소드나 일반화 클래스가 입력받는 형식 매개 변수 T는 "모든" 데이터 형식을 대신할 수 있다. 이렇게 모든 형식에 대응할 수 있는 형식 매개 변수가 필요한 때도 있지만, 종종 특정 조건을 갖춘 형식에만 대응하는 형식 매개 변수가 필요할 때도 있다. 이 때 형식 매개 변수의 조건에 제약을 줄 수 있다. 예를 들어 MyList 클래스의 형식 매개 변수 T에 "MyClass 로부터 상속받는 형식이어야 할 것" 이라는 제약을 주면 다음과 같이 클래스 선언문의 헤더에 where 절을 추가해주면 된다. class MyList where T : MyClass { // ... } 일반화 메소드도 비슷하다. CopyArray() 의 형식 매개 변수 T에 "값 형식이어야 할 것" 이라는 제약은 다음과 같이 줄 수..
C++ 언어에서의 "템플릿 (Template)" 이라고 생각하면 된다. template C#은 프로그래머가 작성한 하나의 코드가 여러 가지 데이터 형식에 맞춰 동작할 수 있도록 "일반환 프로그래밍" 을 지원한다. 일반환 프로그래밍은 코드 생산성을 좌우하는 아주 중요한 요소이며 일반화 컬렉션은 반드시 익혀둘 필요가 충분하다. 특수한 개념으로부터 공통된 개념을 찾아 묶는 것을 "일반화 (Generalization)" 라고 한다. "일반화 프로그래밍 (Generic Programming) " 은 이러한 일반화를 이용하는 프로그래밍 기법이다. 일반화하는 대상은 "데이터 형식 (Data Type)" 이다. void CopyArray( int[] source, int[] target) { for(int i=0; i..