Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- dropdown
- unity sparkmain(clone)
- Simulation
- 티스토리챌린지
- raycast
- removeAll
- unity korea
- 너비탐색
- 트리구조
- 크루스칼
- GetComponent
- 디지털트윈
- Unity
- readonly
- 습관형성 #직장인자기계발 #오공완
- 행동트리
- list clear
- C#
- 오블완
- navisworks api
- 드롭다운
- sparkmain(clone) 무한생성
- 최단거리 알고리즘
- dfs
- 유니티
- 유니티 sparkmain(clone)
- 최소신장트리 mst
- sparkmain(clone)
- articulation body
- 깊이탐색
Archives
- Today
- Total
낑깡의 게임 프로그래밍 도전기
c# 제네릭(Generic) 본문
반응형
제네릭은 일반화 프로그래밍이라고도한다.
List<string> strings = new List<string>();
List<int> ints = new List<int>();
위와 같이 동적으로 자료형을 할달할 수 있는 것을 제네릭이라고 할 수 있다.
활용
제네릭 메서드도 만들 수 있었다. 예를 들면 T라는 타입을 써서 어떤 자료형이 들어오든 동작하게 만들 수 있었다. 예를 들면 이런 식이다.
처음엔 특정 타입의 Actor 목록을 가져오려고 할 때, List<ActorBase>를 순회하면서 원하는 타입만 따로 골라내야 했다.
그런데 이걸 매번 캐스팅하고 검사하려면 코드도 중복되고 귀찮았다.
그래서 제네릭을 써서 재사용 가능한 메서드로 만들게 됐다.
Public List<T> GetActors<T>() where T : ActorBase //T 는 ActorBase를 상속 받은 애들만 쓸수 있다는 뜻
{
foreach (ActorBase actorBase in actorBases)
{
T actor = actorBase as T;
if(actor != null)
actor.Add(actor);
}
return actors;
}
이렇게 하면 T는 반드시 ActorBase를 상속받은 클래스여야만 쓸 수 있었다.
이 제약 조건 덕분에 actorBase as T 캐스팅도 안정적으로 쓸 수 있었고, 컴파일러가 타입을 보장해준다.
클래스로도 만들 수 있다.
반응형
'C#' 카테고리의 다른 글
| C# 리플렉션 (0) | 2025.07.29 |
|---|---|
| C# 비동기(Thread, aysnc await) (1) | 2025.07.28 |
| C# 링큐(Linq) (3) | 2025.07.26 |
| C# 람다식(Lamba) (0) | 2025.07.25 |
| C# 서브클래스, 인터페이스, 추상클래스 (1) | 2025.07.24 |