페이지 code.google.com/p/fakeiteasy/
에서C# 메서드 매개 변수로 람다 식에 대한 질문
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
그래서 문제는 - 람다 식을 메서드 매개 변수로 전달하는 방법입니까?
페이지 code.google.com/p/fakeiteasy/
에서C# 메서드 매개 변수로 람다 식에 대한 질문
A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);
그래서 문제는 - 람다 식을 메서드 매개 변수로 전달하는 방법입니까?
이 함수는 Func<T>
(일반 매개 변수가있는 일반 대리자) 또는 Expression<Func<T>>
(expression tree)의 매개 변수를 사용합니다.
함수 자체에는 전달 된 메서드에서 유추되는 일반 매개 변수가있을 수 있습니다.
표현 트리를 사용하여 함수는 표현식 내부의 코드를 검사하고 그 표현식을 확인합니다.
+1 절대로 실패하지 않습니다 ... 항상 20 초 앞선 것입니다. –
네, 그렇습니다. FakeItEasy는 표현식 트리를 검사하여 메소드가 호출되는 인스턴스와 해당 인스턴스에서 호출되는 메소드 (및 매개 변수)를 가져옵니다. –
코드는 람다 식을 매개 변수로 메서드 호출에 전달하는 것과 동일합니다.
CallTo
의 서명이 'CallTo (Action action)'일 수 있습니다. 따라서 람다는 대표자로 전달됩니다.
um? 뭔가 빠졌을 수도 있습니다 (람다 식은 유효한 out-of-place 'new {}'구문을 처리 할 때를 제외하고 유효한 이름 가능한 정적 유형을가집니다) - 무엇을 시도 했습니까? 힌트 : 대부분의 경우'Func <...> '을 고려하십시오. –