[c#] C# 제네릭의 개념
class Stack<T>
{
private T[] elements;
private int index = 0;
public Stack(int capacity)
{
elements = new T[capacity];
}
public void Push(T item)
{
elements[index++] = item;
}
public T Pop()
{
return elements[--index];
}
}
public class Program
{
public static void Main()
{
Stack<int> intStack = new Stack<int>(5);
intStack.Push(1);
intStack.Push(2);
intStack.Push(3);
Console.WriteLine(intStack.Pop());
Console.WriteLine(intStack.Pop());
Stack<string> stringStack = new Stack<string>(5);
stringStack.Push("A");
stringStack.Push("B");
stringStack.Push("C");
Console.WriteLine(stringStack.Pop());
Console.WriteLine(stringStack.Pop());
}
}
위 예제에서 Stack<T>
는 제네릭 클래스로, T
는 형식 파라미터입니다. 이것은 정수형이나 문자열 등 다양한 데이터 형식에 대해 Stack을 생성할 수 있도록 합니다.
제네릭은 컬렉션 및 LINQ와 같은 표준 라이브러리의 일부 요소도 구현한다는 점에서 C#의 주요한 기능 중 하나입니다.
더 자세한 정보는 Microsoft 공식 문서를 참조하세요.