在方法签名中使用 C# Lambda 运算符

Using the C# Lambda Operator in a method signature

我已在 C# 文档 (https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator#code-try-0) 中阅读了有关如何在 C# 签名或构造函数中使用它的 lambda 运算符。还没有开悟。有人可以解释一下这个方法签名中发生了什么吗:

public SampleCustomer(string name, DateTime dateJoined)
    => (Name, DateJoined) = (name, dateJoined);

这是一种编写方法的方法,在您的情况下,是构造方法。

您的 class 具有(或继承)这两个属性 NameDateJoined 您的构造函数正在接收它们的值(使用元组)以初始化这些属性。

这是做同样的事情,但你的例子更短。

public SampleCustomer(string name, DateTime dateJoined)
{
    Name = name;
    DateJoined = dateJoined;
}

=> 运算符允许您省略 {}

这是使用=> 语法编写的构造函数示例。 =>{ ... }中的写法一样。这里发生了什么:

public SampleCustomer(string name, DateTime dateJoined) => (Name, DateJoined) = (name, dateJoined);

等于:

public SampleCustomer(string name, DateTime dateJoined)
{
    (Name, DateJoined) = (name, dateJoined);
}

删除元组后看起来像:

public SampleCustomer(string name, DateTime dateJoined)
{
    Name = name;
    DateJoined = dateJoined;
}

所以在这个构造函数中,一些字段是根据传递给它的值分配的。