Q.람다식? Predicate<T>?
A.람다식은 일회용 메서드 또는 이름 없는 메서드라고 보면된다.
이름이 없기에 계속 호출해서 쓸수 없기에 event에 등록되있으면 계속 사용이 가능하거나
해당 로직에서 딱 한번만 간단하게 쓰일정도면 람다식을 쓰기도한다.
나는 주로 람다식을 event 함수 구현을 할때 주로 사용 했었다.
하지만 팀 프로젝트 중에 이렇게 간단히도 쓸 수 있구나 하는걸 알았다.
빨간상자 쳐진 Predicate<T>는 일반화된 델리게이트(delegate)로, 해당조건문을 동작하면 참,거짓 을 반환하는 함수 포인터이다.
Predicate<T> 자료형은 즉 함수 포인터이기에 함수를 만들고 해당 자료형에 함수를 초기화하고 사용 할 수있다.
하지만 이렇게 쓰는것보다 바로 람다식을 사용하여 간단하게 쓸수있다.
var matchedItem = PlayerInventory.Find(item => item.ItemNum == SelectTypeItemList[i].ItemNum);
즉 , 해당 함수는 ItemNum 을 비교하여 참,거짓 값을 반환하여 참이면 해당 데이터(Item)를 거짓이면 null 값을 반환한다.
(Find 함수의 반환값은 Item? 이기에 null값을 받을 수있다.)