【问题标题】:what is this feature called in c# and which version of c# uses this在 c# 中这个特性是什么以及哪个版本的 c# 使用这个特性
【发布时间】:2017-07-13 08:58:04
【问题描述】:

我在我的项目中使用这行代码,还没有看到这种语法。

 internal static StringBuilder a(this StringBuilder sb, string b) => sb.Append(b).Append("\n");

谁能告诉我这叫什么,这样我就可以研究更多。

【问题讨论】:

标签: c#


【解决方案1】:

如果您指的是 lambda 箭头 =>,它是 C# 6 的一个特性(表达式体函数成员)。检查https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6#expression-bodied-function-members

【讨论】:

  • 这就是我要找的表达式体函数成员
【解决方案2】:

internal static StringBuilder a(this StringBuilder sb, string b)

这部分告诉我们aStringBuilder扩展方法。你可以阅读更多关于扩展方法here

=> sb.Append(b).Append("\n")

这些是没有语句体的函数。相反,您可以使用函数声明后的表达式来实现它们。这是 C# 6 中的新功能。被称为 表达式体函数成员。您可以阅读更多关于它们的信息here

【讨论】:

    【解决方案3】:

    这一行包含两个主要特征。第一个是扩展方法,它是定义在 lambda 符号 (=>) 左侧的方法签名,可以识别为扩展方法,因为它在第一个参数之前使用了 this 关键字。第二个称为表达式体函数,它是 lambda 符号右侧的部分。

    Extension methods

    Expression bodied functions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2011-09-14
      相关资源
      最近更新 更多