본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 제네릭(Generic) 사용하기

by 공부하는개미 2021. 5. 31.
반응형

 

 

아래 글은 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 

 

gilbutITbook/006890

C# 교과서. Contribute to gilbutITbook/006890 development by creating an account on GitHub.

github.com

반응형

'프로그래밍언어 & 프레임워크 > 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