RhinoMocks - передать действие <T>в качестве параметра - PullRequest
0 голосов
/ 17 августа 2010

В RhinoMocks есть метод расширения Stub, который принимает Action<T>.По некоторым причинам это:

CurrentInvoice.Stub(i => i.TaxYear).Return(1);

прекрасно работает, но это:

CurrentInvoice.Stub(new Action<Invoice>(i => i.TaxYear)).Return(1);

приводит к ошибке компилятора: могут использоваться только присваивания, вызовы, приращения, декременты и новые выражения объектакак утверждение

Интеллектуальный смысл этого метода явно говорит о том, что он ожидает Action<Invoice>, поэтому я не могу понять, почему первое работает, а не второе.

Основная актуальность этогоявляется то, что я хотел бы иметь возможность передавать некоторые из этих лямбда-конфигураций в качестве параметров к методу, и я столкнулся с этой же проблемой.

Спасибо

1 Ответ

3 голосов
/ 17 августа 2010

Вы уверены, что случайно не используете перегрузку для Stub, которая занимает Func<T, TResult> в первой строке?Я не понимаю, почему первый вызов будет работать иначе.

У вас есть ссылка на документацию API?

...