使用lambda运算符的C#方法声明



在研究C#运算符重载时,我在MSDN网站上偶然发现了以下代码块:

public static Complex operator +(Complex c1, Complex c2) =>
    new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
// Override ToString() to display a complex number 
// in the traditional format:
public override string ToString() => $"{this.real} + {this.imaginary}";

在某些情况下,这是一种非常有用的定义简单方法的方法,但我不记得在任何地方见过它的描述。我尝试在C#5.0语言规范中搜索该方法声明语法的描述,但一无所获。我在网络搜索中也一无所获。

两个问题:

  1. 这种方法声明语法在C#的哪个版本中可用
  2. 该语法在语言规范中的何处描述

它是在C#6中添加的,您可以在新编译器的官方Github上阅读它。

最新更新