[C#] Generic
in C# on 공부, C#, Generic,
제네릭(Generic)이란?
클래스를 사용할 타입을 클래스를 디자인할 때 지정하는 게 아니라 클래스를 사용할 때 지정한 후 사용하는 기술을 말한다.
제네릭을 흔히 형식 매개 변수라고 말한다.
비유하자면 ‘틀’이라고 설명할 수 있다.
한 클래스나 구조체는 사용자가 코딩한 형식으로만(정의된 형식으로만) 반환 형식이나 매개 변수의 형식이 결정되게 된다.
interface INonGenericInterface {
Int32 Add(Int32 num);
Int32 Sub(Int32 num);
Int32 Mul(Int32 num);
Int32 Div(Int32 num);
}
위에는 한 인터페이스의 예이다. 반환형과 자료형을 보면 Int32
로 정해져 있는 것을 볼 수 있다.
만약 Int32 형식이 아닌 다른 형식으로 인터페이스를 만들고 싶다면 바로 제네릭을 쓰면 된다.
interface IGenericInterface<T> {
T Add(T num);
T Sub(T num);
T Mul(T num);
T Div(T num);
}
.NET에서 기본적으로 제공하는 클래스 중 제네릭을 사용하는 클래스는 ‘SYstem.Collections.Generic’에 정의되어 있다.
위의 예제를 보면 형식 이름 뒤에 <T>
가 추가된 것을 확인할 수 있다. 이때 여기서 T는 형식 매개 변수를 의미한다.
이
이 인터페이스를 사용하고 싶으면 다음과 같이 하면 된다.
IGenericInterface<Int32> int32GenericInterface;
형식<자료형> 식별이름;
제네릭을 정말 잘 표현한 그림이 있어서 가져왔다.