인프런 커뮤니티 질문&답변

킴kim님의 프로필 이미지
킴kim

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

Generic (일반화)

질문이있습니다

해결된 질문

작성

·

217

2

안녕하세요 선생님.

class MyList<T> where T : Monster  // T는 반드시 Monster 혹은 Monster를 상속받은 클래스여야 한다.

이 설명이 이해가 안가는데

T가 Monster 타입이어야되는 조건이 있는데 그럼 왜 모든 타입을 받을 수 있는 제너릭으로 만든건가요??

답변 2

7

Rookiss님의 프로필 이미지
Rookiss
지식공유자

Monster 타입 혹은 Monster를 상속받은 < 이 중요합니다.
꼭 몬스터만 받는건 아니고 Slime, Orc, Skeleton
이렇게 몬스터를 조상님으로 파생된 애들도 넣을 수 있습니다.

Generic을 쓰더라도 어느 정도 규제를 하고 싶은 경우가 자주 생기기 때문에 유용합니다.
가령 SpawnMonster라는 이름의 몬스터 스폰 기능을 만들었는데,
누군가 실수로 SpawnMonster 인자로 Player를 넣어주면 곤란할겁니다.
뭐 이런 상황에서 응용할 수 있겠죠.

참고로 해당 문법과 비슷한게 C++20에서도 새롭게 추가 되었습니다.

1

킴kim님의 프로필 이미지
킴kim
질문자

아 ~ 이해됐습니다. 감사합니다.

킴kim님의 프로필 이미지
킴kim

작성한 질문수

질문하기