[C#] 제네릭(Generic)이란 무엇인가?
C#
2024. 8. 16.

Generic

제네릭 기능을 활용하여 작성된 클래스나 메서드로, 다양한 데이터 타입을 처리할 수 있도록 해줍니다.

 

Example - 제네릭 클래스

T는 제네릭 타입 매개변수로, 나중에 이 클래스를 사용할 때 구체적인 타입으로 대체됩니다.

//T는 다양한 데이터 타입을 받을 수 있도록 해주는 Keyword
public class MyGenericClass<T>
{
    private T data;

    public void SetData(T value)
    {
        data = value;
    }

    public T GetData()
    {
        return data;
    }
}

 

void Start()
{
    MyGenericClass<int> intInstance = new MyGenericClass<int>();
    intInstance.SetData(10);
    Debug.Log(intInstance.GetData()); // 출력: 10

    MyGenericClass<string> stringInstance = new MyGenericClass<string>();
    stringInstance.SetData("Hello, Unity!");
    Debug.Log(stringInstance.GetData()); // 출력: Hello, Unity!
}

 

 

Example - 제네릭 메서드

public class MyClass
{
    public void PrintData<T>(T data)
    {
        Debug.Log("Data: " + data.ToString());
    }
}

 

void Start()
{
    MyClass myClass = new MyClass();

    myClass.PrintData<int>(100);          // 출력: Data: 100
    myClass.PrintData<string>("Hello!");  // 출력: Data: Hello!
    myClass.PrintData<float>(3.14f);      // 출력: Data: 3.14
}

 

제네릭의 장점

  • 타입 안정성: 컴파일 시점에서 타입 검사가 이루어지므로 런타임 오류를 줄일 수 있습니다.
  • 재사용성: 다양한 타입에 대해 사용할 수 있습니다.
  • 유연성: 데이터 타입에 의존하지 않는 코드를 작성할 수 있어, 코드가 보다 유연해집니다.