【问题标题】:What Is => Called and How Is It Used in C# [duplicate]什么是 => 调用以及如何在 C# 中使用 [重复]
【发布时间】:2013-04-13 19:56:49
【问题描述】:

我看到示例代码中使用了 =>,但我不知道这个操作数叫什么。因为这个词只是符号,谷歌搜索不是很有帮助。

以下是它的使用示例:

var rolesAllowed = rolePermission.Where(permission => permission.Permissions.Any(p => Demand.HasFlag(p.Type))).ToList();

这个问题与那些公然标记为“重复”的问题不同。我正在寻找表达式的名称,以便研究如何使用它。所谓的重复项是针对已经知道 => 被称为 lambda 表达式的人。

我要感谢花时间阅读和理解问题并发布高质量回复的人们。

【问题讨论】:

标签: c#


【解决方案1】:

它叫Lambda operator

要创建 lambda 表达式,请指定输入参数(如果有) 在 lambda 运算符 => 的左侧,然后将表达式 或另一边的语句块。例如,拉姆达 表达式 x => x * x 指定一个名为 x 的参数并返回 x 的平方值。

Lambda 表达式 使用特殊语法。它们允许将函数用作变量或字段等数据。 lambda 表达式语法使用=> 运算符。这将 anonymous function 的参数和语句体分开。

=> 运算符可以读作 "goes to",它总是在声明 lambda 表达式时使用。

【讨论】:

  • 我一直把它读成'这样',但'去'也很好,所以+1。
【解决方案2】:

用于lambda expressions。本质上, Where 函数所接受的是另一个遍历集合的函数。 => 的左侧定义参数,右侧是实际运行的函数。

【讨论】:

  • 太好了,谢谢。因此,如果我要将示例代码翻译成英文句子,它将是“在 Permissions 类中查找权限,该类被标记为特定类型的权限,将其放在列表中,并将其分配给 rolesAllowed 变量“?
  • 这听起来像是描述了上面的功能。
【解决方案3】:

它被称为lambda operator,它是lambda expression 语法的一部分。

Lambda 表达式是创建anonymous methods 的非常简洁的方法。

匿名方法示例:

button1.Click += delegate(System.Object o, System.EventArgs e)
                   { MessageBox.Show("Click!"); };

相同的代码,但这次使用 lambda 表达式:

button1.Click += (o,e) => MessageBox.Show("Click!"); 

如图所示,这个语法是 编写匿名方法的绝佳速记符号,其中可以传递一堆参数 成一组语句进行处理。 .NET 平台中采用委托对象的任何方法 作为参数可以用相关的 lambda 表达式替换,这通常会简化您的 代码库相当多。

【讨论】:

    【解决方案4】:

    这是lambda operator,它创建一个lambda表达式,就像一个匿名方法。

    【讨论】:

      【解决方案5】:

      =>lambda operator,请查看链接以了解更多信息。

      还可以查看this 答案了解更多详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多