Tüm anonim özelliklerden yeniyim ve biraz yardıma ihtiyacım var. İşe aşağıdaki aldık:Bu temsilci anonim bir yöntemle veya lambdaya dönüştürün
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));
}
Ama bu tamamen çirkin olduğunu ve bunu mümkün olup olmadığını anonim yöntem, hatta bir lambda olması Do içini istiyorum.
Expect.Call(delegate { _dao.Save(t); }).Do(delegate(Transaction t2) { t2.Message = "I drink goats blood"; });
ve
Expect.Call(delegate { _dao.Save(t); }).Do(delegate { t.Message = "I drink goats blood"; });
ama bunlar bana
bir temsilci türü değil çünkü 'System.Delegate' yazın anonim yöntemi dönüştürülemez ** derleme hataları verin: Denedim .
Neyi yanlış yapıyorum? Çünkü Mark Ingram yayınlanmıştır ne
, kimse açıkça söylenir da, bu yapmaktır, en iyi cevap gibi görünüyor:
public delegate void FakeSave(Transaction t);
Expect.Call(delegate { _dao.Save(t); }).Do(new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));
İyi linke ama (o lambda sözdizimi ile yaptığı gibi) hala neden * derleyici automagicallylar döküm gelmez * anlamıyorum –
Bağlantı bozuk. –
Hala benim için çalışıyor musun? –