Soy nuevo en todas las funciones anónimas y necesito ayuda. He conseguido lo siguiente para trabajar:Convierta este delegado a un método anónimo o lambda
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));
}
Pero esto es totalmente feo y me gustaría tener el interior del hacer para ser un método anónimo o incluso una lambda, si es posible. Probé:
Expect.Call(delegate { _dao.Save(t); }).Do(delegate(Transaction t2) { t2.Message = "I drink goats blood"; });
y
Expect.Call(delegate { _dao.Save(t); }).Do(delegate { t.Message = "I drink goats blood"; });
pero estos me dan
No se puede convertir método anónimo al tipo 'System.Delegate' porque no es un tipo de delegado ** Los errores de compilación .
¿Qué estoy haciendo mal?
Debido a lo que Mark Ingram publicada, parece ser la mejor respuesta, aunque nadie ha dicho explícitamente, es de hacer esto:
public delegate void FakeSave(Transaction t);
Expect.Call(delegate { _dao.Save(t); }).Do(new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));
Buen enlace, pero sigo sin entender por qué * * el compilador no lo echó automágicamente (como lo hace con la sintaxis lambda) –
El enlace está roto. –
¿Sigue trabajando para mí? –