.net - C#7表达体构造器

标签 .net c#-7.0

在C#7中,如何使用2个参数编写像这样的Expression Bodied构造函数。

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引入)开始,编译器代码现在将优化元组的实际构造和解构。因此,与“长手”分配相比,这种方法没有性能开销。

关于.net - C#7表达体构造器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974143/

相关文章:

.net - .net(或其任何部分)是开源的吗?

c# - 通过 COM 连接到第三方应用程序时出错 : mscorlib Exception from HRESULT: 0x80040202

.net - TPL 数据流管道设计基础知识

c# - 为什么可空的模式匹配会导致语法错误?

c# - C# 7 是否具有数组/可枚举解构?

c# - 如果编译它,为什么 C#7 语法中的 TryParse(清空参数)会发出警告?

c# - 关于任务延续的问题

.net - IsDouble 检查 Vb.net 中的字符串?

C# 7 .NET/CLR/Visual Studio 版本要求

没有引用类型的 c# struct