해결된 질문
작성
·
211
2
안녕하세요 선생님.
class MyList<T> where T : Monster // T는 반드시 Monster 혹은 Monster를 상속받은 클래스여야 한다.
이 설명이 이해가 안가는데
T가 Monster 타입이어야되는 조건이 있는데 그럼 왜 모든 타입을 받을 수 있는 제너릭으로 만든건가요??
답변 2
7
Monster 타입 혹은 Monster를 상속받은 < 이 중요합니다.
꼭 몬스터만 받는건 아니고 Slime, Orc, Skeleton
이렇게 몬스터를 조상님으로 파생된 애들도 넣을 수 있습니다.
Generic을 쓰더라도 어느 정도 규제를 하고 싶은 경우가 자주 생기기 때문에 유용합니다.
가령 SpawnMonster라는 이름의 몬스터 스폰 기능을 만들었는데,
누군가 실수로 SpawnMonster 인자로 Player를 넣어주면 곤란할겁니다.
뭐 이런 상황에서 응용할 수 있겠죠.
참고로 해당 문법과 비슷한게 C++20에서도 새롭게 추가 되었습니다.
1