제네릭 타입
void Swap<T>(T x, T y)
{
var temp = y;
y = x;
x = temp;
}
제네릭 특징
- 코드 재사용성이 높다.
- 성능이 좋다.
- 런타임 때 데이터 형식이 결정되는 것이 아니라, 코드에서 호출할 때 데이터 형식이 결정되므로 성능 저하가 없음
제네릭 클래스
- List<T>, Dictionary<T>, LinkedList<T> 등 C#에서 기본 제공
제네릭 타입 제약
- 제네릭 타입을 선언할 때, 제약 조건을 걸 수 있다.
- 제네릭 선언 후, “where T : 제약조건”
- A1<T, U> where T : A2<U>
- A1클래스의 인자로 제너릭 변수 T, U를 받는다.
- A2<U>는 U를 매개변수로 하는 A2클래스 타입
- T는 A2<U>를 상속받는 타입
제네릭 메서드
- 매개변수의 타입을 미리 결정하지 않고 사용 시, 결정
T Function<T> (T arg)
{
T temp = arg;
//...
return temp;
}