더북(TheBook)

28.2 Stack 제네릭 클래스 사용하기

우리가 앞에서 학습한 Stack 클래스의 제네릭 버전은 Stack<T> 형태로 표현합니다. 영어 발음으로는 Stack of T로 발음합니다. T는 특정 형식을 받아들이는 형식 매개변수입니다. Stack 클래스의 제네릭 버전에 대한 다음 예제는 StackOfType.cs에서 볼 수 있습니다.

 

1.   먼저 Stack<T> 클래스를 사용하려면 System.Collections.Generic 네임스페이스를 포함합니다.

> using System.Collections.Generic;

2.   제네릭 클래스의 인스턴스를 생성하려면 Stack<T> 형태인 Stack<string>으로 문자열만 다룰 수 있는 Stack 클래스를 만들어야 합니다.

> Stack<string> stack = new Stack<string>();

3.   Stack<string>으로 선언된 stack 개체는 문자열만 입력받을 수 있습니다.

> stack.Push("First");

4.   마찬가지로 Pop() 메서드의 결과도 문자열로 바로 출력됩니다.

> stack.Pop()
"First"

일반 클래스인 Stack과 제네릭 클래스인 Stack<T>는 하는 일이 동일합니다. 다만 Stack 클래스는 데이터를 object로 다루고, Stack<T> 클래스는 T로 지정한 데이터로 다룹니다. object로 만든 데이터를 실제 사용하려는 string과 같은 형식으로 표현할 때는 중간에 변환 과정을 거치기 때문에 이 부분에서 추가 작업을 진행하는 비용이 발생합니다. 그래서 정확한 데이터 형식을 쓸 수 있는 Stack<T> 같은 제네릭 클래스를 사용하면 좋습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.