这是什么(非lambda?)C#中的“=>”变量定义

本文关键字:定义 变量 中的 是什么 lambda | 更新日期: 2023-09-27 18:35:21

我正在查看 C# 的协议缓冲区,有这样的代码:

public sealed class FileDescriptor : IDescriptor
{
    // snip
    /// <value>
    /// The file name.
    /// </value>
    public string Name => Proto.Name;
    /// <summary>
    /// The package as declared in the .proto file. This may or may not
    /// be equivalent to the .NET namespace of the generated classes.
    /// </summary>
    public string Package => Proto.Package;
    // etc.

=>似乎是lambda运算符,但这看起来不太像lambda。这是怎么回事?

这是什么(非lambda?)C#中的“=>”变量定义

这是 C#6 表达式体成员。它们允许您使用 lambda 语法指定属性实现。

这:

public string Name => Proto.Name;

相当于:

public string Name { get { return Proto.Name; } }