[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
위 예시에서는 CustomStack
을 int
형식에 맞게 사용하여 정수 데이터를 담고 꺼내는 기능을 구현했습니다.
이처럼 제네릭을 이용하면 다양한 종류의 데이터에 대해 유연하게 대응할 수 있으며, 코드의 재사용성과 안정성을 높일 수 있습니다.
결론
제네릭을 사용하여 커스텀 데이터 구조를 만들면 유연하고 안전한 코드를 작성할 수 있습니다. 제네릭을 적절히 활용하여 데이터 구조를 일반화함으로써 코드의 재사용성을 높이고 타입 안정성을 보장할 수 있습니다.
제네릭은 C#의 강력한 기능 중 하나이며, 적재적소에 활용하여 보다 안정적이고 유연한 프로그래밍을 구현할 수 있습니다.