【问题标题】:Syntax of an argument [duplicate]参数的语法[重复]
【发布时间】:2016-07-29 09:20:32
【问题描述】:

我遇到了这条线:

client.Delay(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(1));

在他们的文档中的Hangfire.io 站点上,并且对() => 有点困惑。看起来它与订购或搜索有关,但我对此的了解基本上为零。它到底在做什么?

【问题讨论】:

  • 这是 lambda 表达式。基本上它是一个匿名函数——在这种情况下没有任何参数。我敢打赌,如果您查看 client 的类型 Delay 方法的文档,它需要 2 个参数 - 第一个是回调/委托(由这个 lambda 表达式表示),第二个应该是延迟。跨度>
  • 啊!好的。谢谢@MilanTomeš。这就解释了。如果你输入答案,我会给你答案。
  • 哇!对我不知道的事情投了三票,因此无法寻找答案!那里有一些不友善的人。

标签: c# syntax arguments


【解决方案1】:

这是 lambda 表达式。基本上它是一个匿名函数——在这种情况下没有任何参数。我敢打赌,如果您查看 client 的类型 Delay 方法的文档,它需要 2 个参数 - 第一个是回调/委托(由这个 lambda 表达式表示),第二个应该是延迟。

【讨论】:

    【解决方案2】:

    这是一个 lambda 表达式。可以参考MSDN

    在 => 右侧有一个表达式的 lambda 表达式 运算符称为表达式 lambda。使用表达式 lambda 广泛用于构建表达式树(C# 和 Visual 基本的)。表达式 lambda 返回表达式的结果,并且 采用以下基本形式:(输入参数)=> 表达式

    【讨论】:

      【解决方案3】:

      在不了解 Hangfire.io API 的情况下,我会说您正在调用传递匿名 lambda 表达式的 Delay 方法。此 lambda 在 Delay 方法中的某处被调用,并执行 () => .....

      之后的代码

      【讨论】:

      • TimeSpan.FromDays(1) 是 Delay 方法的第二个参数,参数之间用冒号 ;o)
      • 感谢您的帮助,Steve - 我对 C# 的了解非常有限,因此我不得不相信您的话;o)。我需要开始更深入地学习这门语言。
      • 啊,我明白了,谢谢@SirRufo。
      猜你喜欢
      • 1970-01-01
      • 2017-04-18
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      • 2022-06-10
      • 2017-09-07
      • 2020-11-17
      相关资源
      最近更新 更多