C#7表达身体的构造者

myf*_*lla 26 .net c#-7.0

在C#7中,如何使用2个参数编写这样的Expression Bodied Constructor.

public Person(string name, int age)
{
  Name = name;
  Age = age;
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*rno 61

一种方法是使用元组和解构来允许在一个表达式中进行多个赋值:

public class Person
{
    public string Name { get; }
    public int Age { get; }

    public Person(string name, int age) => (Name, Age) = (name, age);
}
Run Code Online (Sandbox Code Playgroud)

从C#7.1(随Visual Studio 2017 Update 3引入)开始,编译器代码现在将优化元组的实际构造和解构.因此,与"longhand"赋值相比,此方法没有性能开销.

  • 这是邪恶的.我正在使用C#7.1,我无法理解这一点. (7认同)