Я новичок во всех анонимных функциях и нуждаюсь в некоторой помощи. Я получил следующее:
public void FakeSaveWithMessage(Transaction t)
{
t.Message = "I drink goats blood";
}
public delegate void FakeSave(Transaction t);
public void SampleTestFunction()
{
Expect.Call(delegate { _dao.Save(t); }).Do(new FakeSave(FakeSaveWithMessage));
}
Но это абсолютно уродливо, и я хотел бы, чтобы внутри Do было анонимным методом или даже лямбдой, если это возможно. Я пробовал:
Expect.Call(delegate { _dao.Save(t); }).Do(delegate(Transaction t2) { t2.Message = "I drink goats blood"; });
и
Expect.Call(delegate { _dao.Save(t); }).Do(delegate { t.Message = "I drink goats blood"; });
но они дают мне
Невозможно преобразовать анонимный метод, чтобы набрать "System.Delegate", потому что это не тип делегата ** компилировать ошибки.
Что я делаю неправильно?
Из-за того, что опубликовал Марк Ингрэм, кажется лучшим ответом, хотя никто прямо не сказал этого, должен сделать это:
public delegate void FakeSave(Transaction t);
Expect.Call(delegate { _dao.Save(t); }).Do( new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));