• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

part1 람다식 강의에서 제네릭

22.07.05 15:00 작성 조회수 128

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

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