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

레슬매니아님의 프로필 이미지
레슬매니아

작성한 질문수

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

part1 람다식 강의에서 제네릭

해결된 질문

작성

·

204

0

안녕하세요.

part1 람다식 강의 16:18 에서 50번째 줄에 있는 new Myfunc<Item, bool>을 지우셨는데 궁금증이 생겨 질문드립니다.

14:40 에서 50번째 줄에 있는 것처럼 제네릭이 없는 델리게이트를 사용할 때는

ItemSelector selector = new ItemSelector ((Item Item) => { return item.ItemType == ItemType.Weapon}); new키워드를 쓰셨는데

16:18에서 제네릭을 사용하시고부터는 없어도 똑같이 동작한다고 말씀하셨습니다. 즉 코드상으로

MyFunc<Item, bool> selector = new MyFunc<Item, bool>((Item Item) => { return item.ItemType == ItemType.Weapon}); 에서

MyFunc<Item, bool> selector = (Item Item) => { return item.ItemType == ItemType.Weapon};  로 고치셨습니다.

new Myfunc<Item, bool>를 지우셨는데 제네릭을 사용할 때는 new를 써도 되고 안써도 되고라고 이해해도 될까요?

답변 1

1

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

제네릭이나 new 유무 때문이라기보다는 생각보다 컴파일러가 똑똑해서
유추할 수 있는 것들은 알아서 추론을 해주기 때문입니다.

레슬매니아님의 프로필 이미지
레슬매니아

작성한 질문수

질문하기