C#교과서 마스터하기 18. 제네릭(Generic)

min seung moon·2021년 7월 10일
0

C#

목록 보기
18/54

https://www.youtube.com/watch?v=561J5sYWCEQ&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=48

1. 제네릭(Generic)

  • Cupt<T>를 Cup of T로 발음하여 형식 매개 변수인 T에 따른 Cup 클래스의 개체 생성
  • 편리함과 성능 향상 둘다 가져다 준다
  • Collection의 향상 버전
  • Generic : List<T>, Cup of T

01. Stack<T>

  • FILO(Fist In Last Out)

-1. generic 적용 전

  • 기본적으로는 Object 타입으로 다양한 타입의 값을 입력할 수 있다
> using System.Collections;
> Stack stack = new Stack();
> stack.Push(100);
> stack.Push(200);
> stack.Pop();
200

-2. generic 적용 후

  • 타입을 지정해줌으로 성능에 더욱 좋다
> using System.Collections;
> using System.Collections.Generic;
> Stack<int> stack = new Stack<int>();
> stack.Push(100);
> stack.Push(200);
> stack.Pop();
200

02. List

> using System.Collections;
> using System.Collections.Generic;
> List<int> numbers = new List<int>();
> numbers.Add(10);
> numbers.Add(20);
> foreach(int number in numbers)
. {
.	Console.WrietLine(number);
. }
10
20
  • Enumerable.Range(startRange, endRange), Enumerable.Repeat(number, repeatTimes)
> using System.Collections;
> using System.Collections.Generic;
> List<int> numbers = new List<int>();
> Enumerable.Range(1, 10)
RangeIterator { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
> Enumerable.Repeat(1, 10)
RangeIterator { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
> numbers.AddRange(Enumerable.Range(1, 10));
> numbers
List<int>(10) { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

03. Dictionary<,>

> using System.Collections;
> using System.Collections.Generic;
> Dictionary<int, string> todos = new Dictionary<int, string>();
> todos.Add(1, "C#");
> todos.Add(2, "ASP.NET");
> todos.Add(3, "...");
> todos
Dictionary<int, string>(3) { {1, "C#" }, {2, "ASP.NET"}, {3, "..."} }
> foreach(var item in todos)
. {
.	Console.WrietLine($"{item.Key} - {item.Value}");
. }
1 - C#
2 - ASP.NET
3 - ...
profile
아직까지는 코린이!

0개의 댓글