C # Вопрос о лямбда-выражении как параметре метода - PullRequest
0 голосов
/ 18 ноября 2010

На странице code.google.com/p/fakeiteasy/ Я заметил строку:

A.CallTo(() => shop.GetTopSellingCandy()).Returns(lollipop);

, поэтому возникает вопрос - как передать лямбда-выражение в качестве параметра метода?

Ответы [ 3 ]

5 голосов
/ 18 ноября 2010

Эта функция принимает параметр типа Func<T> (обычный делегат с универсальным параметром) или, более вероятно, Expression<Func<T>> ( дерево выражений ).

Сама функция, вероятно, имеет общий параметр, который выводится из переданного метода.

Взяв дерево выражений, функция может проверить код внутри выражения и посмотреть, что он делает.

2 голосов
/ 18 ноября 2010

Код, который вы дали, делает именно это - передает лямбда-выражение в качестве параметра в вызов метода.

0 голосов
/ 18 ноября 2010

CallTo может иметь подпись «CallTo (действие)». Таким образом, лямбда передается как делегат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...