我应该使用 Func 代替私有方法吗?

本文关键字:有方法 Func 我应该 | 更新日期: 2023-09-27 18:31:47

我在这里发布它而不是代码审查,因为我想知道执行程序是否可以因此而表现不同(可能是一些微妙的东西)。

是一种私有方法:

    private int Foo()
    {
        return Bar().Bat();
    }

与私人 Func 有什么不同吗?

    private Func<int> Foo = () => Bar().Bat();

我这样做的唯一原因是使代码更紧凑。

我应该使用 Func<T> 代替私有方法吗?

没有太大区别,但是

  • 定义模板化类型int(可能是类型安全,即使它在提供的当前代码中不可见)

  • 您可以将该函数用作参数传递给另一个函数,在第一种情况下也可以这样做,但在第一种情况下,您需要声明一个delegate类型。

  • 第三个更紧凑,但第一个更具可读性,IMO,所以如果你不需要一些"功能"的东西,我会选择第一选择。

Func s是delegate s,并封装了具有相等符号和Func的任何方法。 对于分层,我评论您使用Private Methods

使用 Func,您实际上是在保存对匿名方法的引用。编译器从中创建一个命名方法,您正在执行的操作就像保存对它的额外引用一样。

这没什么大不了的,除了标准是命名方法之外,没有太大区别。它也更具逻辑性和可读性。