.net C#7表达式体构造函数

.net C#7表达式体构造函数,.net,c#-7.0,.net,C# 7.0,在C#7中,如何使用2个参数编写这样的表达式体构造函数 public Person(string name, int age) { Name = name; Age = age; } 一种方法是使用元组和解构来允许在一个表达式中进行多个赋值: public class Person { public string Name { get; } public int Age { get; } public Person(string name, int age)

在C#7中,如何使用2个参数编写这样的表达式体构造函数

public Person(string name, int age)
{
  Name = name;
  Age = age;
}

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

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

    public Person(string name, int age) => (Name, Age) = (name, age);
}

从C#7.1(随Visual Studio 2017 Update 3推出)开始,编译器代码现在将优化元组的实际构造和解构。因此,与“直接”分配相比,这种方法没有性能开销。

这是邪恶的。我用的是C#7.1,我就是看不见它。@PanagiotisKanavos,它以什么方式邪恶?就好像C#7.1一样,我开始使用它,因为它对我来说似乎是一个很好的解决方案。@DavidArno他可能认为这是一个有点邪恶的天才,因为有多少CPU周期只是为了优雅的语法而被隐藏起来。我决定创建一个小应用程序来进行并行比较,上面的元组语法将创建新对象所需的时间增加了一倍。这真是令人印象深刻,说明了元组的性能。对于99.999%的开发者来说,我认为这里的性能差异是无关紧要的。这个想法在UserVoice上被多次提出并被忽略。请去投票吧,这样这个想法就会有吸引力。现在是2017年——C#应该有更好的依赖注入速记@pbarranis,-
公共类Person(字符串名称、整数年龄、整数高度)-正在考虑C#8.0。