code_junkie

Help convert this delegate to an anonymous method or lambda

Nov 10th, 2011
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. public void FakeSaveWithMessage(Transaction t) {
  2. t.Message = "I drink goats blood";
  3. }
  4. public delegate void FakeSave(Transaction t);
  5. public void SampleTestFunction() {
  6. ...
  7. Expect.Call(delegate { _dao.Save(t); }).Do(new FakeSave(FakeSaveWithMessage));
  8. ...
  9. }
  10.  
  11. Expect.Call(delegate { _dao.Save(t); }).Do(delegate(Transaction t2) { t2.Message = "I drink goats blood"; });
  12.  
  13. Expect.Call(delegate { _dao.Save(t); }).Do(delegate { t.Message = "I drink goats blood"; });
  14.  
  15. public delegate void FakeSave(Transaction t);
  16. ...
  17. Expect.Call(delegate { _dao.Save(t); }).Do( new FakeSave(delegate(Transaction t2) { t.Message = expected_msg; }));
  18.  
  19. private void MyMethod()
  20. {
  21. }
  22.  
  23. 1) Delegate d = delegate() { }; // Cannot convert anonymous method to type ‘System.Delegate’ because it is not a delegate type
  24. 2) Delegate d2 = MyMethod; // Cannot convert method group ‘MyMethod’ to non-delegate type ‘System.Delegate’
  25. 3) Delegate d3 = (WaitCallback)MyMethod; // No overload for ‘MyMethod’ matches delegate ‘System.Threading.WaitCallback’
  26.  
  27. 4) Delegate d4 = (MethodInvoker)MyMethod; // Works because we cast to a delegate type of the same signature.
  28. 5) Delegate d5 = (Action)delegate { }; // Works for same reason as d4.
  29. 6) Action d6 = MyMethod; // Delegate inference at work here. New Action delegate is created and assigned.
  30.  
  31. Expect.Call(delegate { _dao.Save(t); }).Do(new EventHandler(delegate(Transaction t2) { t2.CheckInInfo.CheckInMessage = "I drink goats blood"; }));
  32.  
  33. public delegate void UnitTestingDelegate<T>(T thing);
  34.  
  35. Expect.Call(delegate { _dao.Save(t); }).Do((Delegate)delegate { t.Message = "I drink goats blood"; });
Add Comment
Please, Sign In to add comment