gpt4 book ai didi

c# - 是否有理由不将 Func 用于一次性功能?

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:33 25 4
gpt4 key购买 nike

有没有我应该做的理由

public class Foo {
int Bar() {
return 1;
}
public void Baz() {
int bar = Bar();
// do other stuff
}
}

对比

public class Foo {
public void Baz() {
Func<int> Bar = ()=> {
return 1;
};
int bar = Bar();
// do other stuff
}
}

我想做后者是为了表明 Bar 仅供 Baz 执行的意图,但如果它有问题我不想这样做。

最佳答案

非常实用,看起来很聪明,我永远不会在代码中这样做以供其他人使用。如果您和其他将查看此代码的人都习惯了这种风格,我认为它没有问题。

临:

  • 清楚地显示范围
  • 非常实用

缺点:

  • 函数变得更长(特别是如果你不使用 K&R 大括号样式)
  • 非常非传统的 C# 代码。内联 lambda 现在无处不在,但像这样的显式函数并没有被广泛使用。
  • 可能无意中从外部函数捕获状态。
  • Likley 的性能受到的影响很小,并且不太可能被 JIT 内联。

关于c# - 是否有理由不将 Func 用于一次性功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5834031/

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