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



我已经在c#文档(https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/lambda-operator#code-try-0)中阅读了lambda运算符如何在c#签名或构造函数中使用。还没开悟。谁能解释一下这个方法签名是怎么回事:

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, DateJoined) = (name, dateJoined);
}

删除元组后,它看起来像:

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

因此,在这个构造函数中,一些字段是从传递给它的值中分配的。

这是一种编写方法的方法,在你的例子中,是一个构造函数方法。

你的类有(或继承)这两个属性NameDateJoined你的构造函数接收它们的值(使用元组)的目的是初始化这些属性。

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

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

=>运算符允许省略{}

最新更新