[C#] 27. 제네릭

Connected Brain·2025년 4월 25일

면접 질문 대비

목록 보기
27/60

제네릭이란 무엇인가요?

한 줄 요약

제네릭 : 다양한 형식을 지원하는 클래스나 함수를 설계할 수 있도록해 형식 안정성과 코드 재사용성을 높임

제네릭(Generic)

  • 제네릭이란 클래스나 함수를 사용할 때까지 하나 이상의 형식을 지원하도록 디자인할 수 있다.
class GenericClass<T>{}

class TestClass
{
	GenericClass<int> genericIntClass = new GenericClass<int>();
    GenericClass<float> genericFloatClass = new GenericClass<float>();
}
  • 위와 같은 구조를 가지며, 여러 형식을 가지도록 클래스나 메서드를 구성할 수 있다. 이를 통해 런타임에서 캐스팅을 사용하거나 박싱을 사용하면서 발생할 수 있는 문제를 제네릭 문법을 사용함으로써 피할 수 있다.

사용 예시

public class InstanceFactory<TBaseData, TClass, TController> where TBaseData : BaseData
{
    public static TClass CreatInstance(int index, TController instanceController)
    {
        ...(인스턴스를 생성하는 로직)...
    }
}
  • 여러 형식을 T에 담을 수 있지만 where TBaseData : BaseData에서와 같이 T에 들어갈 수 있는 클래스를 제한할 수도 있다. 위 구문은 BaseData를 상속받는 요소만 해당 T에 포함될 수 있도록 한다.

0개의 댓글