用表达式定义的属性与传统方式有什么实际区别?

What practical difference is there between properties defined with expressions and the traditional way?

我于 2016 年从 .NET C# 的全职编程中退休,但最近作为业余程序员回来了。我有兴趣发现一种使用粗箭头对属性进行编码的新方法:

public DateTime PicDate { get => _picDate; set => _picDate = value; }

这是我习惯的(以及 get; set; 的东西):

public int Century
{
    get
    {
        return _century;
    }
    set
    {
        _century = value;
    }
}

除了易于编码之外,在实现方面是否存在实际差异? C# 7 是否比旧方法更有效地处理新方法?

换句话说,新语法 "better" 比旧语法好吗?

一模一样。它编译为相同的底层 IL 代码。

不过,我建议使用 auto-properties,这样您就不必自己处理支持字段:

public DateTime PicDate { get; set; }

完全一样
private DateTime _picDate;

public DateTime PicDate 
{ 
  get { return _picDate; }
  set { _picDate = value; }
}

这与使用 => 语法的示例完全相同(如 Dave 所说:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members)。

希望这能解决问题![​​=14=]