[c#] 제네릭을 이용한 커스텀 데이터 구조

제네릭 (Generic)은 C#에서 매우 강력한 기능 중 하나로, 컬렉션과 데이터 구조뿐만 아니라 메서드, 클래스, 인터페이스 등을 일반화할 수 있게 해줍니다. 이러한 기능을 활용하여 커스텀 데이터 구조를 만들어 활용할 수 있습니다.

제네릭 클래스

제네릭 클래스를 사용하여 커스텀 데이터 구조를 만들어보겠습니다. 예를 들어, 간단한 제네릭 스택(큐)을 만들어보겠습니다.

public class CustomStack<T>
{
    private List<T> _items = new List<T>();

    public void Push(T item)
    {
        _items.Add(item);
    }

    public T Pop()
    {
        if (_items.Count > 0)
        {
            T item = _items[_items.Count - 1];
            _items.RemoveAt(_items.Count - 1);
            return item;
        }
        else
        {
            throw new InvalidOperationException("Stack is empty");
        }
    }
}

위 코드에서 CustomStack 클래스는 제네릭 형식 매개변수 T를 사용하여 일반화된 스택을 구현합니다. 따라서 이 구조를 사용할 때에는 원하는 데이터 형식을 명시하여야 합니다.

활용 예시

CustomStack<int> intStack = new CustomStack<int>();
intStack.Push(5);
intStack.Push(10);
intStack.Push(15);

Console.WriteLine(intStack.Pop()); // 15
Console.WriteLine(intStack.Pop()); // 10

위 예시에서는 CustomStackint형식에 맞게 사용하여 정수 데이터를 담고 꺼내는 기능을 구현했습니다.

이처럼 제네릭을 이용하면 다양한 종류의 데이터에 대해 유연하게 대응할 수 있으며, 코드의 재사용성과 안정성을 높일 수 있습니다.

결론

제네릭을 사용하여 커스텀 데이터 구조를 만들면 유연하고 안전한 코드를 작성할 수 있습니다. 제네릭을 적절히 활용하여 데이터 구조를 일반화함으로써 코드의 재사용성을 높이고 타입 안정성을 보장할 수 있습니다.

제네릭은 C#의 강력한 기능 중 하나이며, 적재적소에 활용하여 보다 안정적이고 유연한 프로그래밍을 구현할 수 있습니다.

참고 자료