Converta esse delegado para um método anônimo ou lambda

Sou novo em todos os recursos anônimos e preciso de ajuda. Consegui o seguinte para trabalhar:

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));
}

Mas isso é totalmente feio e eu gostaria que o interior do Do fosse um método anônimo ou até mesmo um lambda, se possível. Eu tentei

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"; });

mas estes me dão

ão é possível converter o método anônimo para o tipo 'System.Delegate' porque não é um tipo de delegado ** erros de compilaçã

O que estou fazendo errado

Por causa do que Mark Ingram postou, parece ser a melhor resposta, embora ninguém tenha dito isso explicitamente, é fazer o seguinte:

public delegate void FakeSave(Transaction t);

Expect.Call(delegate { _dao.Save(t); }).Do( new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));

questionAnswers(4)

yourAnswerToTheQuestion