반응형
아래 글은 C# 제네릭(Generic) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.
📃 참고자료
- C# 교과서(길벗 출판사) - 28단원 제네릭 사용하기 373 ~ 381페이지
- 유튜브채널 VisualAcademy [C# 교과서 마스터하기 28. 제네릭 사용하기]
- 닷넷코리아 (https://www.dotnetkorea.com/)
https://www.youtube.com/watch?v=561J5sYWCEQ
✳ 제네릭(Generic) 한줄 정의
- Cup<T>를 Cup of T로 발음하여 형식 매개 변수인 T에 따른 Cup 클래스의 개체 생성
-> 여기서 T는 Type(형식)을 나타냄
✳ 제네릭 사용의 장점(예제코드)
using System.Collections;
using System.Collections.Generic;
namespace 제네릭_장점
{
class 제네릭_장점
{
static void Main(string[] args)
{
//[1] 제네릭 사용 전
Stack s1 = new Stack();
s1.Push(1234);
int i1 = (int)s1.Pop(); // cast 필요
//[2] 제네릭 사용 후
Stack<int> s2 = new Stack<int>();
s2.Push(2345);
int i2 = s2.Pop(); // cast 불필요
//[3] 장점 1: 타입 안정성
Stack o = new Stack();
o.Push(1234);
o.Push("Hello");
object oo = o.Pop(); // 가능
Stack<int> i = new Stack<int>();
i.Push(1234);
//i.Push("Bye"); // 컴파일 타임 에러
//[4] 장점 2: 성능 향상
Stack stack = new Stack();
stack.Push(1234); // 1234(값형) to object(참조형) : 박싱(Boxing) : 포장
int iStack = (int)stack.Pop(); // 참조형 to 값형 : 언박싱(UnBoxing)
}
}
}
✳ Stack 형식 외에도 List, List, Dictionary 형식의 예제를 아래의 깃헙 링크에서 볼 수 있습니다.
https://github.com/gilbutITbook/006890/tree/master/DotNet/DotNet/28_GenericClass
반응형
'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글
C# 널(Null) (0) | 2021.06.02 |
---|---|
C# 컬렉션(Collection) (0) | 2021.06.01 |
C# 문자열(String) 다루기 (0) | 2021.05.27 |
C# 클래스(Class) (0) | 2021.05.25 |
C# 링크(LINQ) (0) | 2021.05.24 |