더북(TheBook)

3.   Stack이 아닌 Stack<T> 클래스를 사용하면 값형 데이터를 참조형 데이터로 변환하는 박싱 작업과 그 반대로 참조형 데이터를 값형 데이터로 변환하는 언박싱 작업을 하지 않아도 되므로 성능이 향상됩니다. 또 Stack<int>처럼 명확하게 int 형식 데이터만 받게 지정하면 string 형식이 들어올 때 에러를 발생시키므로 안정적입니다.

> //제네릭 장점: ⓐ 박싱과 언박싱에 대한 비용
> Stack stack = new Stack();
> stack.Push(1234);           //int(값형) to object(참조형): 박싱
> int num = (int)stack.Pop(); //참조형 to 값형: 언박싱
> num
1234
>
> //제네릭 장점: ⓑ 필요한 데이터 형식만 사용하여 형식이 안정적
> Stack<int> stack = new Stack<int>();
> stack.Push("Hello");
(1,12): error CS1503: Argument 1: cannot convert from 'string' to 'int'
> stack.Push(5678);
> int num = stack.Pop();
> num
5678
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.