表达式函数体成员

在C#6.0前,所有方法和get属性的主体部分都是由包含在大括号内的代码组成的,并且必须有大括号。

但是现在,在某些情况下我们有了另外的选择。

如果函数体是由单个表达式构成的,我们可以使用称为表达式函数体的短格式语法。

表达式函数体成员有如下重要特性:

  • 代码必须是由一个表达式组成的,以分号结束。
  • 不能有开始和结束大括号
  • 在参数列表和构成函数体的表达式之间使用Lambda运算符(=>)
  • 在C#6.0中,这个功能可以用在方法和属性的get访问器中。C#7.0将这个功能扩展到了构造函数、终结函数(finalizer)、属性set访问器和索引器

例如,下面方法声明使用了之前的方法体语法,而没有使用表达式函数体语法。

它是由包含在大括号内的一个语句组成的。

C#
  public static int ToInt(string str)
  {
      return int.Parse(str);
  }

使用表达式函数体格式,这个代码可以重写成如下更简洁的样子 ———–使用Lambda运算符,没有大括号。

注意,语句已经被表达式替代了

C#
public static int ToInt(string str) => int.Parse(str);

下面演示一个只读属性的例子:

C#
public string myTitle => "abs";

你不能对自动实现了读写操作的属性成员使用表达式函数体。

在这种情况下,不能同时使用访问器列表和表达式函数体。

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部