코드를 일반화하여 여러 다른 타입에서 재사용할 수 있는 기능. 일반화 템플릿을 사용하면 클래스, 구조체, 메서드 등을 작성할 때 특정한 타입에 종속되지 않고 범용적으로 사용할 수 있다.
C#에서의 일반화 템플릿은 <> 꺾쇠 괄호를 사용하여 정의된다.
이 꺾쇠 괄호 안에 타입 매개변수를 선언하고, 이 매개변수를 템플릿 내에서 타입 또는 메서드의 인수로 사용할 수 있다.
일반화 템플릿은 타입의 안전성을 유지하면서 코드의 재사용성을 높이는데 도움을 준다.
<T>
로 자료형을 받아서, 해당 자료형의 값을 배열의 형태로 저장하는 제네릭 클래스를 구현한 코드.
다음과 같이 사용한다.
<T>
에 float double 등 자유롭게 자료형을 입력하여 사용할 수 있다.
<T>
타입 파라미터를 두 개 이상 받아서 사용할 수도 있다.
상단의 코드는 타입 파라미터 2개를 사용한 제너릭 탬플릿이다.
제너릭
①<T>
타입 파라미터를 이용해서 박싱, 언박싱 최소화 가능 -> 성능 향상
②사용시에는 이 타입 파라미터에 특정 타입을 지정
③여러 개의 데이터 타입에 대응하는 범용성을 가진다.
<T>
타입 파라미터가 <T>
타입 파라미터 클래스를 타입 파라미터 형으로 받을 수 있다.
상단의 코드를 확인하면, string을 인자로 받는, 부모 객체, Base 클래스를 파라미터로 받는 MyGeneric 클래스를 확인할 수 있다.
해당 제너릭 탬플릿의 인스턴스를 생성하기 위해서는 부모객체인 Base나 AA 클래스를 인스턴스로 초기화 해야 한다.
또한 이렇게 생성한 데이터는 다음과 같이 if문으로 사용 가능하다.