gpt4 book ai didi

c# - 这里叫什么 : return _()

转载 作者:行者123 更新时间:2023-12-03 03:22:12 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Odd return syntax statement

(2 个回答)


2年前关闭。




我在文件 Batch.cs 中遇到过此代码(link):

return _(); IEnumerable<TResult> _()

我阅读了丢弃物,但仍然无法理解上面的代码。当我将鼠标悬停在第一个 _ 上方时它说:“捕获的变量:结果选择器,集合”。
  • 两个干什么的_()代表?
  • 由于我们正在做 return _(); ,后面的代码怎么能IEnumerable<TResult> _()还是被执行?
  • 最佳答案

    _()这是对 local function 的电话调用_ .不寻常,但有效。

    局部函数大致类似于常规方法,除了它只能从声明它的方法内部按名称(即调用方法的通常方式)调用(正如 Eric 在评论中指出的那样,还有其他一些方法它可以被调用,例如通过从方法传递的委托(delegate)),并且(除非修饰 static )它可以从声明方法中获取局部变量和参数作为状态。

    在这种情况下,目的是执行急切的参数验证。
    验证码在iterator block ,参数验证将推迟到第一个 MoveNext()称呼。 (即它不会提示 sourcenull,直到有人尝试 foreach 处理数据)。

    关于c# - 这里叫什么 : return _(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59926620/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com