假设你有一堂课:
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
使用此类中的 C# 7.0,即使没有大括号,您也可以做到:
Action<int, int> action = (x, y) => (_, _) = (X += x, Y += y);
和
Action<int, int> action = (x, y) => _ = (X += x, Y += y);
将等同于:
Action<int, int> action = (x, y) => { X += x; Y += y; };
如果您需要在一行中编写常规方法或构造函数,或者当您需要将多个语句/表达式打包到一个表达式中时,这也可能会有所帮助:
public void Action(int x, int y) => (_, _) = (X += x, Y += y);
或
public void Action(int x, int y) => _ = (X += x, Y += y);
或
public void Action(int x, int y) => (X, Y) = (X + x, Y + y);
更多关于deconstruction of tuples in the documentation。