Guest User

Untitled

a guest
May 24th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.58 KB | None | 0 0
  1. public static void Swap<T>(Expression<Func<T>> left, Expression<Func<T>> right)
  2. {
  3. var lvalue = left.Compile()();
  4. Expression.Lambda<Func<T>>(Expression.Assign(left.Body, Expression.Constant(right.Compile()()))).Compile()();
  5. Expression.Lambda<Func<T>>(Expression.Assign(right.Body, Expression.Constant(lvalue))).Compile()();
  6. }
  7.  
  8. public class Test
  9. {
  10. public int X { get; set; }
  11. public int Y { get; set; }
  12. }
  13.  
  14. static void Main()
  15. {
  16. var obj = new Test() { X = 123, Y = 456, };
  17. Swap(() => obj.X, () => obj.Y);
  18. Console.WriteLine("obj.X = {0}, obj.Y = {1}", obj.X, obj.Y);
  19. }
Add Comment
Please, Sign In to add comment